[Error] 'for' loop initial declarations are only allowed in C99 or C11 mode
时间: 2024-05-13 21:14:53 浏览: 32
vue单文件组件lint error自动fix与styleLint报错自动fix详解
这个错误是因为在 C89/90 标准下,循环中的变量声明只能放在函数开头,而不能放在循环中。如果你想在循环中声明变量,你需要将编译器设置为 C99 或 C11 模式。
要解决这个问题,你可以在编译时使用 `-std=c99` 或 `-std=c11` 参数来设置编译器模式。例如,在 gcc 编译器中,你可以使用以下命令编译代码:
```
gcc -std=c99 your_file.c -o your_program
```
或者,你可以将变量声明移到循环外部,这也是一个更好的实践。例如,将以下代码:
```
for (int i = 0; i < 10; i++) {
int j = i * 2;
printf("%d\n", j);
}
```
改为:
```
int i, j;
for (i = 0; i < 10; i++) {
j = i * 2;
printf("%d\n", j);
}
```
这样就可以避免这个错误了。
阅读全文