2015-03-24 2 views
1

Я работаю над проектом C для TI TMS320x DSP с компилятором C2000. Я пытался инициализировать переменную цикла непосредственно внутри для цикла, но почему-то я получаю ошибку компиляции:Объявление переменной внутри цикла for; получение ошибки с компилятором c2000

Код:

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

Ошибка:

error #20: identifier "TabCnt" is undefined 

Я полагаю, что это может быть неправильно настройка компилятора? Если я объявляю переменную вне цикла, она работает отлично.

+1

Вы должны применять 'c99' режим в настройках компилятора. –

ответ

1

Это потому, что вы используете компилятор, который поддерживает только C89.

Синтаксис:

действительна только с C99. Решение либо включить C99, если поддерживается, или объявлять переменные в начале блока, например:

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

Хорошо, я подумал, что это может быть что-то в этом роде. Благодаря! – Simon

0
int TabCnt; 

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

решит вашу проблему, как это кажется, ваш компилятор не поддерживает C99.

Try компиляции с -std=c99, так как синтаксис у вас есть допускается только с C99

+0

Да, вы правы. C99 не поддерживается! – Simon

Смежные вопросы