Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环gcc中的C-int第一个声明_C_Gcc - Fatal编程技术网

For循环gcc中的C-int第一个声明

For循环gcc中的C-int第一个声明,c,gcc,C,Gcc,为什么这个C代码不能用gcc编译 for(int j=0; j<n; j++){ //some code here } for(int j=0;jC99和后者允许此功能。在C99模式下编译代码-std=C99 C11:6.8.5.3对于以下语句: 1声明 for ( clause-1 ; expression-2 ; expression-3 ) statement 行为如下:表达式-2是 在每次执行循环体之前求值。表达式-3为 在每次执行循环体后作为无效表达式进行计算。如果子句-1

为什么这个
C
代码不能用
gcc
编译

for(int j=0; j<n; j++){
 //some code here
}

for(int j=0;jC99和后者允许此功能。在C99模式下编译代码
-std=C99

C11:6.8.5.3对于以下语句: 1声明

for ( clause-1 ; expression-2 ; expression-3 ) statement
行为如下:表达式-2是 在每次执行循环体之前求值。表达式-3为 在每次执行循环体后作为无效表达式进行计算。如果子句-1是 声明1,它声明的任何标识符的范围都是声明的剩余部分和整个循环,包括其他两个表达式;它是在控制表达式的第一次求值之前按照执行顺序到达的。如果子句-1是一个表达式,则在第一次求值之前它将作为一个空表达式求值关于控制表达式的定义(158)



1.重点是我的。

错误消息说明了一切(至少在
gcc-4.6.3
):

如果在编译命令中添加
-std=c99

gcc -std=c99 test.c

那么它应该编译

你说的“不能执行”是什么意思?当然,如果它被编译,那么您就可以执行它了。。。!!??添加一条错误消息会使这个问题变得清晰。使用-std=c99或-std=gnu99
gcc -std=c99 test.c