174得票37回答
如何将枚举类型的变量转换为字符串?

如何使printf显示枚举类型的变量值?例如:typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; 而我需要的是类似于下面的东西 printenum(OS_type, "My OS is %s", myOS);...

166得票5回答
C、C99、ANSI C和GNU C之间有什么区别?

我开始在codechef上进行编程练习,但被C和C99之间的区别混淆了。这里的C是什么意思?是指C89吗?请查看此提交页面底部的语言选择。它包含C和C99两种。 我在网上找到了一个叫做GNU C的东西。linux/unix系统有不同于其他系统的C吗?它们是否符合ANSI的C标准?我还在一些地...

129得票10回答
为什么ANSI C没有命名空间?

对于大多数编程语言而言,命名空间似乎都是一件易如反掌的事情。但据我所知,ANSI C 并不支持它。为什么呢?有计划在未来的标准中包含它吗?

105得票5回答
一个人在哪里可以找到C89/C90标准的PDF格式?

我正在寻找免费的C89/C90标准副本,但是我无法在任何地方找到它!为什么这么难找呢? C99和C11标准非常容易在互联网上获得副本。即使在Stack Overflow的问题Where do I find the current C or C++ standard documents?和Th...

54得票4回答
字符串终止 - char c=0 vs char c='\0'

当终止一个字符串时,逻辑上来说char c=0与char c='\0'等效,因为"null"(ASCII 0)字节是0,但通常人们倾向于使用'\0'。这是纯粹出于偏好还是更好的"惯例"?首选哪个? 编辑:K&R说:"字符常量'\0'表示值为零的字符,即空字符。常常使用'\0'代替0以...

54得票4回答
1601年1月1日的意义是什么?

这个结构体是一个64位的值,表示自1601年1月1日以来的100纳秒间隔数。 为什么要设置“自1601年”?为什么不是Unix时间1970或甚至2000年? 对于如此遥远的日期兼容性,我该怎么办? 参考:http://msdn.microsoft.com/en-us/library/a...

35得票2回答
ANSI-C中的static是什么意思?

可能是重复问题: C语言中的static关键字是什么意思? C语言中的static关键字是什么意思? 我在使用ANSI-C时看到过几个代码示例,它们在变量前面和函数前面都使用了static关键字。在变量的情况下使用的目的是什么?在函数的情况下使用的目的又是什么?

33得票4回答
ANSI C与其他C标准的区别

在我使用的几个编译器(全部是gcc,但版本不同)中,如果我在for循环表达式中而不是之前声明int i之后,则会收到类似于声明C99模式错误的提示(如果我没有使用std=c99选项)。从这里读取后,我了解到gcc选项-ansi、-std=c89和-std=iso9899:1990都等同于ANS...

31得票2回答
GCC选项用于最严格的C代码?

为了让GCC尽可能严格,应该设置哪些GCC选项?(我是指尽可能严格)我正在使用C89编写代码,并希望我的代码符合ANSI/ISO标准。

25得票8回答
ANSI C中try/catch的等效实现?

我正在处理一些C代码,运行时出现错误,但是我对如何进行适当的try/catch(如C#或C ++中)知之甚少。 例如,在C++中,我只需执行以下操作:try{ //some stuff } catch(...) { //handle error } 但是在ANSI C中我有点迷茫。我尝试了一...