在C中使用for循环出错

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

这在C中有效吗? 因为当我尝试编译它时,我得到一个错误,如果我从for循环的初始化程序部分中删除int,它编译罚款…

C99之前在C中无效。

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

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

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