版本dev
C语言代码中遇到的错误 [Error] ‘for’ loop initial declarations are only allowed in C99 or C11 mode 是由于 编译器默认使用旧版C语言标准(如C89),而新版C99/C11标准允许在 for 循环内直接声明变量。
问题原因
C语言标准限制
旧版C89标准 要求所有变量声明必须在函数或代码块的开头,不允许在 for 循环的初始化部分声明变量(如 for (int i=0; …))
C99/C11标准 放宽了这一限制,允许在 for 循环内声明变量。
编译器默认设置
旧版编译器(如Dev-C++内置的GCC)可能默认使用C89标准编译代码。
启用C99/C11标准
解决办法
一、在编译时添加 -std=c99 或 -std=c11 选项,告知编译器使用新版标准:
Dev-C++设置:
点击菜单栏的 工具 (Tools) → 编译选项 (Compiler Options)
勾选 “编译时加入以下命令”
输入 -std=c99 或 -std=c11 → 点击 确定
二、升级编译器
若编译器版本过旧(如GCC 4.9.2),升级到新版GCC或使用支持C11的IDE(如Visual Studio)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 啸依旧!