在 for 循环内声明变量; c2000编译器出现错误

问题描述 投票:0回答:3

我正在使用 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
3个回答
4
投票

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

这个语法:

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

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

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

0
投票
int TabCnt;

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

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

尝试使用

-std=c99
进行编译,因为您所拥有的语法仅允许从 C99 开始


0
投票

对于任何想了解如何在 Code Composer Studio 中启用 c99 的人(用于为 Texas Instruments 微控制器开发嵌入式 C 的编辑器),请转到“项目”->“属性”,然后在左侧转到“构建”->“C2000 编译器”->高级选项 -> 语言选项。您可以在“C Dialect”参数的下拉菜单中选择c99。

注意:我使用的是CCS v11.2.0.00007

© www.soinside.com 2019 - 2024. All rights reserved.