error: ‘for’ loop initial declarations are only allowed in C99 mode 3.c:17: note: use option -std=c99 or -std=gnu99 to compile your code
时间: 2024-05-23 08:15:43 浏览: 169
这个错误是因为你使用了 C99 标准中新增的“for循环初始化声明”语法,但你的编译器不支持该语法。你需要使用编译器选项“-std=c99”或“-std=gnu99”来编译你的代码,以启用 C99 标准的支持。具体来说,你可以在编译命令中加入“-std=c99”选项,或者在代码文件的头部加入“#pragma GCC diagnostic ignored "-Wdeclaration-after-statement"”指令禁止该警告。
相关问题
error: 'for' loop initial declarations are only allowed in C99 mode test.c:53:3: note: use option -std=c99 or -std=gnu99 to compile your code
这个错误是因为在 C89/90 标准中,循环中的变量声明必须在函数或作用域的开头,而不能在循环中间进行声明。
如果你使用的是 gcc 编译器,可以通过添加 `-std=c99` 或 `-std=gnu99` 选项来使用 C99 标准进行编译。例如:
```
gcc -std=c99 test.c -o test
```
或者,在代码开头添加以下行:
```c
#define _XOPEN_SOURCE 700
```
这样也可以启用 C99 标准的特性。
另外,如果你使用的是其他编译器,可以查看其文档以了解如何启用 C99 标准。
arm-xilinx-linux-gnueabi-gcc 出现error: 'for' loop initial declarations are only allowed in C99 mode test.c:53:3: note: use option -std=c99 or -std=gnu99 to compile your code
这个错误提示和上面的类似,是因为在 C89/90 标准中,循环中的变量声明必须在函数或作用域的开头,而不能在循环中间进行声明。
同样地,你需要在编译时添加 `-std=c99` 或 `-std=gnu99` 选项来启用 C99 标准。示例命令如下:
```
arm-xilinx-linux-gnueabi-gcc -std=c99 test.c -o test
```
如果你需要在多个文件中使用 C99 标准,你可以将 `-std=c99` 或 `-std=gnu99` 选项加入到你的 Makefile 中,例如:
```
CFLAGS += -std=c99
```
希望对你有所帮助!
阅读全文