gcc中使用的C版本是什么

gcc中使用的C版本是什么,c,gcc,C,Gcc,GCC中使用的C版本是什么?C99、C11还是C90?我以为GCC使用的是C99,但我错了: for(int i = 0; i < 100; i++){ ... } for(int i=0;i使用-STD=99</P> 在C99之前,必须在块的开头定义局部变量。C99导入C++特性,您可以将局部变量定义与指令混合,并且可以在“for”和“the”控制表达式中定义变量。如果使用C99,则使用 GCC—STD= C99 < /Cord>。如果需要C99,请使用 GCC—STD= C99

GCC中使用的C版本是什么?C99、C11还是C90?我以为GCC使用的是C99,但我错了:

for(int i = 0; i < 100; i++){
  ...
}
for(int i=0;i<100;i++){
...
}

错误:仅在C99模式下允许“for”循环初始声明。

我认为默认值是
-std=gnu90
。您可以在编译器标志中指定
-std=c99
来支持此操作。

我相信默认值是
-std=gnu90
。您可以在编译器标志中指定
-std=c99
来支持此操作。

默认情况下
gcc
使用C90,这在
gcc
文档中都有介绍,此标志为
-std=gnu90

如果没有给出C语言方言选项,默认值为-std=gnu90;这是为了在将来的某个版本中更改为-std=gnu11

如果您希望C99支持,则应使用
-std=C99
,但这并不意味着
gcc
将不使用扩展,因此如果您希望在
gcc
使用扩展时收到警告,则需要添加
-pedantic
-pedantic errors
将其转化为错误:

要获得标准要求的所有诊断,还应指定-pedantic(或-pedantic errors,如果希望它们是错误而不是警告的话)


默认情况下,
gcc
使用C90,这在
gcc
文档中都有介绍,其标志为
-std=gnu90

如果没有给出C语言方言选项,默认值为-std=gnu90;这是为了在将来的某个版本中更改为-std=gnu11

如果您希望C99支持,则应使用
-std=C99
,但这并不意味着
gcc
将不使用扩展,因此如果您希望在
gcc
使用扩展时收到警告,则需要添加
-pedantic
-pedantic errors
将其转化为错误:

要获得标准要求的所有诊断,还应指定-pedantic(或-pedantic errors,如果希望它们是错误而不是警告的话)

根据:

如果未提供C语言方言选项,则默认值为
-std=gnu90
;这是为了在将来的一些版本中更改为
-std=gnu11

根据:

如果未提供C语言方言选项,则默认值为
-std=gnu90
;这是为了在将来的一些版本中更改为
-std=gnu11

使用-std=99

在C99之前,必须在块的开头定义局部变量。C99导入C++特性,您可以将局部变量定义与指令混合,并且可以定义for和For控件表达式中的变量。

< P>使用-STD=99</P>
在C99之前,必须在块的开头定义局部变量。C99导入C++特性,您可以将局部变量定义与指令混合,并且可以在“for”和“the”控制表达式中定义变量。

如果使用C99,则使用<代码> GCC—STD= C99 < /Cord>。如果需要C99,请使用<代码> GCC—STD= C99 < /代码>。