嵌入式linux开发,编译报错:error: ‘for’ loop initial declarations are only allowed in C99 mode

嵌入式linux开发,编译报错:error: ‘for’ loop initial declarations are only allowed in C99 mode,第1张

一、问题描述

在嵌入式linux开发过程中,进行编译,报错如下

src/util/Vector.c:94:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
         for (int j = V->length++; j > i; j--)
         ^
src/util/Vector.c:94:9: note: use option -std=c99 or -std=gnu99 to compile your code
src/util/Vector.c: In function ‘Vector_remove’:
src/util/Vector.c:123:9: error: ‘for’ loop initial declarations are only allowed in C99 mode
         for (int j = i; j < V->length; j++)
         ^
二、问题分析

gcc编译,是基于低于C99标准编译的。在低于c99的标准中, for循环内定义变量是不允许的。

三、解决方案 方法一

修改代码

int j;
for (j = i; j < V->length; j++)
方法二

gcc指定使用c99标准进行编译

gcc -std=c99
方法三

在Makefile中指定使用c99标准进行编译

CFLAGS += -std=c99

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/800782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-07
下一篇 2022-05-07

发表评论

登录后才能评论

评论列表(0条)

保存