2014-01-29 30 views
0

如果我尝试在MVS编译此:使变量声明之前Microsoft Visual Studio接受逻辑检查/函数调用的选项?

void my_fun(int x){ 
    if(x==0) 
     return; 

    int y = x; 
    y++; 
    ... 
} 

我一起变y是未申报的线得到一个错误。但是,如果我这样做一切正常。

void my_fun(int x){ 
    int y = x; 
    y++; 
    if(x==0) 
     return; 
    ... 
} 

这实在是不方便的考虑,如果逻辑检查返回true,则我只是想反正退出功能,无需宣布将不使用变量的开销。

有没有办法改变它?

回答

2

您正在使用C89编译器。在C89中,变量声明必须驻留在作用域块的开始位置。

+0

谢谢。我正在查看是否可以更改此选项,但无法找到选项。默认情况下作为旧版实现的编译器是多么奇怪的事情。 – sherrellbc

+1

@sherrellbc将文件的扩展名改为'.cpp',C++实现了C89的大部分功能,所以你应该没问题 – Avery3R

+0

@sherrellbc:没有选项;它是一个C89编译器。 MS提供的就是这些。如果你想写C,你可能想要使用不同的编译器。 –