首页 > 代码库 > for循环中i变量初始化时报错

for循环中i变量初始化时报错

用的gcc版本号为:gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 

写的程序源文件名为:643b.c,

该文件中,有一个语句:for(int i=0;i<11;i++)

运行编译命令:gcc -o 643b 643b.c

会报错:

643b.c: In function ‘main’:
643b.c:5:2: error: ‘for’ loop initial declarations are only allowed in C99 mode
  for(int i=0;i<11;i++)
  ^
643b.c:5:2: note: use option -std=c99 or -std=gnu99 to compile your code

需要在命令行中添加参数  -std=c99 或者 -std=gnu99

gcc -o 643b 643b.c -std=c99

运行程序:./643b

得到结果:

I am happy

或者:

gcc -o 643b 643b.c -std=gnu99

运行程序:./643b

得到结果:

I am happy

出错的原因可能是因为只有在标准的c99或者gnu99中,才能在for循环中初始化

定义i的类型,所以需要加上参数:-std=c99 或者 -std=gnu99


for循环中i变量初始化时报错