在for循环中声明变量;使用c2000编译器获取错误

时间:2015-03-24 08:56:49

标签: c variables for-loop compiler-errors texas-instruments

我正在开发一个带有C2000编译器的TI TMS320x DSP的C项目。我试图在for循环中直接初始化一个循环变量,但不知何故我得到一个编译器错误:

代码:

for (int TabCnt = 0; TabCnt < 10; TabCnt++)
{
    x++;
}

错误:

error #20: identifier "TabCnt" is undefined

我认为这可能是一个错误的编译器设置?如果我在循环之外声明变量,它就可以完美地运行。

2 个答案:

答案 0 :(得分:3)

那是因为您使用的是仅支持C89的编译器。

此语法:

for (int TabCnt = 0; TabCnt < 10; TabCnt++)

仅在C99之后有效。解决方案是,如果支持,则启用C99,或者在块的开头声明变量,例如:

void foo()
{
    int x = 0;
    int TabCnt;
    for (TabCnt = 0; TabCnt < 10; TabCnt++)
    {
        x++;
    }
}

答案 1 :(得分:0)

int TabCnt;

for(TabCnt = 0; TabCnt < 10; TabCnt++)

将解决您的问题,因为您的编译器似乎不支持C99。

尝试使用-std=c99进行编译,因为您的语法只允许来自C99