16得票2回答
ANSI C和ISO C有什么区别?

我知道C语言有ANSI标准和ISO标准,这两个标准有什么区别吗?如果有,是什么?如果没有区别,那么为什么需要两个标准?

15得票2回答
在C89(也称为ANSI C)中省略return语句是否未定义行为?

考虑以下基本示例: #include <stdio.h> int main(void) { printf("Hi there!\n"); } 我需要处理一下这段关于C89的问题吗?我尝试从这个问题中获得一些信息,但是最受欢迎的答案声称它是实现定义的,在这里绝对没有U...

15得票3回答
如何将C结构体指定初始化器重写为C89(或MSVC C编译器)?

各位,我有这个问题: 通常在C99 GCC(cygwin / MinGW / linux)中,C结构体的初始化器有点符号语法。 就像这样://HELP ME HOW TO REWRITE THIS (in most compact way) to MSVC static struct my_...

15得票3回答
当使用C89和C99编译时,在运行时表现不同的C程序是什么?

我找到了以下片段(我认为是在维基百科上),当识别C++注释时,它会创建一个不同的运行时环境: 我发现以下代码片段(我认为在维基百科上),将在识别C ++注释时创建不同的运行时:int a = 4 //* This is a comment, but where does it end? *...

15得票2回答
将size_t转换为unsigned long int是否安全?

我需要一种便携的方法来打印类型为size_t的变量n的值。由于我使用的是ANSI C89,无法使用z长度修饰符。我的当前方法是将值转换为long unsigned int:printf("%lu\n", (long unsigned int) n); 假设size_t定义为unsigned i...

15得票4回答
ANSI-C不支持inline关键字吗?

当编译像下面这样简单的东西时inline int test() { return 3; } int main() { test(); return 0; } 使用 gcc -c test.c,一切正常。如果添加 -ansi 关键字,gcc -ansi -c test.c,则会收到错误信息...

15得票2回答
严格符合 C90 标准的 GCC 选项是什么?

我正在尝试找到测试严格C90符合性时使用的gcc标志组合。根据之前的帖子:GCC options for strictest C code?,我只需要一个--std=c90。 然而,这是我尝试过的: $ cat t.c #include <stdint.h> /* added ...

14得票2回答
在C89标准下,将指针转换为不同的结构体是否有意义?

我有两个结构体,如下所示:struct X { int x; double *y; }; struct Y { int a; double *b; char c; }; 将指向struct Y的指针转换为指向struct X的指针,在C89标准中是否保证以合理的方式一致地...

14得票5回答
检查文件是否存在的C语言方法

在我要使用C89标准完成的一个项目中,我需要检查文件是否存在。我该怎么做? 我考虑使用: FILE *file; if ((file = fopen(fname, "r")) == NULL) { printf("file doesn't exists"); } return 0; ...

14得票2回答
如何获取errno值的错误信息(C语言)?

我该如何获取errno值的错误消息(C语言)?例如,我可以编写这样的文件(errno_messages.h):#include <errno.h> char* get_errno_message(void){ switch (errno) { case 0: ...