在C中使用for循环时出错

sha*_*awn 1 c windows winapi

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

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

Mys*_*ial 9

它在C99之前的C中无效.

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

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