c语言代码编译报错:‘for’ loop initial declarations are only allowed in C99 or C11 mode 的解决办法

当你遇到 ‘for’ loop initial declarations are only allowed in C99 or C11 mode 这个错误,是因为在默认情况下,一些编译器(如 GCC)使用的是 C89/C90 标准,而在 C89/C90 标准里,不允许在 for 循环的初始化部分声明变量,只有在 C99 及以后的标准才支持这种语法。

错误代码示例

在源代码中,可能存在类似下面这种在 for 循环初始化部分声明变量的代码:

for (int i = 0; i < income_count; i++) {
    // 循环体代码
}

解决方案

方案一:修改代码以符合 C89/C90 标准

将 for 循环初始化部分的变量声明移到循环外部,示例如下:

int i;
for (i = 0; i < income_count; i++) {
    // 循环体代码
}
方案二:使用 C99 或 C11 标准进行编译

这样,你可以继续使用在 for 循环内声明变量。

你可能感兴趣的:(经验分享,c语言,开发语言)