我正在使用 C2000 编译器为 TI TMS320x DSP 开发一个 C 项目。我尝试直接在 for 循环内初始化循环变量,但不知何故出现编译器错误:
代码:
for (int TabCnt = 0; TabCnt < 10; TabCnt++)
{
x++;
}
错误:
error #20: identifier "TabCnt" is undefined
我认为这可能是一个错误的编译器设置?如果我在循环之外声明变量,它就可以完美工作。
最佳答案
这是因为您使用的编译器仅支持 C89。
此语法:
for (int TabCnt = 0; TabCnt < 10; TabCnt++)
仅自 C99 起有效。解决方案是启用 C99(如果支持),或者在 block 的开头声明变量,例如:
void foo()
{
int x = 0;
int TabCnt;
for (TabCnt = 0; TabCnt < 10; TabCnt++)
{
x++;
}
}
关于c - 在 for 循环内声明变量; c2000编译器出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29228400/