在C中使用for循环时出错

时间:2011-09-26 04:05:56

标签: c windows winapi

    for ( int iIdx = 0; iIdx < argc; ++iIdx )
    _tprintf( TEXT( "Arg %d: %s\n" ), iIdx, argv[ iIdx ] );
_tprintf( TEXT( "\n" ) );

这在C中有效吗?因为我在尝试编译它时遇到错误,如果我从for循环的初始化部分中删除了int,它编译得很好......

2 个答案:

答案 0 :(得分:9)

在C99之前的C中无效。

在C89 / 90及更早版本中,声明需要位于每个块的开头。您不能交错声明和普通代码。

for内的声明不计算在块的开头。

答案 1 :(得分:0)

是。 Microsoft的C编译器(cl)不支持现代C(C99)。对于像这样的循环初始化器是C99中的新功能。