Ошибка использования цикла for в C - PullRequest
1 голос
/ 26 сентября 2011
    for ( int iIdx = 0; iIdx < argc; ++iIdx )
    _tprintf( TEXT( "Arg %d: %s\n" ), iIdx, argv[ iIdx ] );
_tprintf( TEXT( "\n" ) );

Это действительно в C?Поскольку я получаю сообщение об ошибке при попытке его скомпилировать, если я удаляю int из раздела инициализатора цикла for, он прекрасно компилируется ...

Ответы [ 2 ]

9 голосов
/ 26 сентября 2011

Недействительно в C до C99.

В C89 / 90 и более ранних версиях объявления должны находиться в начале каждого блока. Вы не можете чередовать объявления и нормальный код.

Объявление внутри for не считается в начале блока.

0 голосов
/ 26 сентября 2011

Да. Компилятор Microsoft C (cl) не поддерживает современный C ( C99 ). Инициализаторы цикла, подобные этому, являются новыми в C99.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...