error: ‘for’ loop initial declarations are only allowed in C99 mode的报错原因和两种解决办法
for(int i=0;i<5;i++)
{
…
}
错误:使用gcc编译代码报错 :error: ‘for’ loop initial declarations are only allowed in C99 mode
note: use option -std=c99 or -std=gnu99 to compile your code
原因:这是因为gcc是基于c89的标准,不能直接在for循环里定义循环变量,而c99标准则可以在for循环里定义循环变量。
解决办法1:在for循环外定义循环变量
int i;
for(i=0;i<5;i++)
{
…
}


在for循环外面定义变量后则不报错


解决办法2:在makefile或者Makefile文件后添加 -std=c99
如:
test: test.c
gcc -o $@ $^ -std=c99
.PHONY:clean
clean:
rm -f test




![[学习笔记]2021韩顺平一周学会Linux](https://img-blog.csdnimg.cn/2aa3b10176cf41cda5d5b460da40be9d.png)














![【WSL】[04]从C盘解放出来WSL的linux镜像](https://img-blog.csdnimg.cn/6475bf1b269f43a5a465f8157819a1f9.png)

