我正在使用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(如果受支持),或者在块的开头声明变量,例如:
void foo()
{
int x = 0;
int TabCnt;
for (TabCnt = 0; TabCnt < 10; TabCnt++)
{
x++;
}
}