无法在 VS2012 中的 for 循环后声明变量

标签 c visual-studio-2012

这是我的代码:

//main.c
int main()
{
    int i=0;
    for (i = 0; i < 10; i++)
    {
        //do nothing
    }
    int temp = 0;
    return 0;
}

代码可以用我的 clang(602.0.49) 编译,但在 VS 2012 中产生 error C2143:

error C2143: syntax error : missing ';' before 'type'

修改后缀为.cpp或者删除int temp = 0;就一切OK了

这是否意味着我不能在 C 项目中的 for 循环之后声明变量?

最佳答案

Visual Studio 2012 仅支持 C89 方言。

C89 方言强制您在同一 block 中将声明放在语句之前。

要修复错误,请将 temp 声明移到 i 声明之后。

关于无法在 VS2012 中的 for 循环后声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32284682/

相关文章:

c - 为什么递归函数调用需要返回一个值给调用函数?

c - 更新全局变量时屏蔽信号

c - 如何覆盖 A C 系统调用?

c - 将递归 C 结构移植到 Fortran

visual-studio - Resharper 有 "search everywhere"吗?

c# - 使用命令筛选器在 Visual Studio 扩展中随机崩溃

c++ - std::list::clear 是否使 std::list::end 迭代器无效?

C缓冲区溢出攻击

c++ - 如何在使用 Visual Studio 编译器使用多重继承时优化对象的内存大小?

c++ - "unresolved external symbol"从一个类引用另一个类