2014-01-29 32 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,你可能想要使用不同的編譯器。 –