【发布时间】:2014-12-23 08:26:14
【问题描述】:
首先,是否可以编辑 GCC 命令行设置,这样我就不必每次都使用 -std=c99 标志进行编译?
其次,为什么 c99 不是默认行为?使用 c99 编译允许某些现代编程约定,例如在 for 循环中创建和初始化索引变量。
for(int i = 0; i < 10; i++) {...
如果没有 c99 标志,这将是不可能的,我必须在外部声明它自己的行,我认为这很愚蠢。为什么 GCC 不默认使用 C99 编译? (合法的好奇,不是抱怨。拜托,不要抨击)
谢谢。
【问题讨论】:
-
我想你可以这样做
alias gcc="gcc -std=c99"。 -
技术上C99 support 不完整。 standards page 说:
The default, if no C language dialect options are given, is -std=gnu90; this is intended to change to -std=gnu11 in some future release. -
@remyabel:是的,每当下一个版本出来时,他们都会更新这个崇高的目标。
-
使用 makefile 是隐藏所有细节的好方法。然后你只需输入“make”。
-
@mafso 不是真的。看来手册自相矛盾。 C Dialect Options 说
‘gnu1x’ GNU dialect of ISO C11. This is the default for C code.。