【问题标题】:Declaring a variable inside a for loop; getting error with c2000 compiler在 for 循环中声明一个变量; c2000编译器出错
【发布时间】:2015-05-27 12:20:48
【问题描述】:

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

代码:

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

错误:

error #20: identifier "TabCnt" is undefined

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

【问题讨论】:

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


【解决方案1】:

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

这个语法:

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

仅从 C99 开始有效。解决方案是在支持的情况下启用 C99,或者在块的开头声明变量,例如:

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

【讨论】:

  • 好吧,我想可能是这样的。谢谢!
【解决方案2】:
int TabCnt;

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

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

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

【讨论】:

    猜你喜欢
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多