2013-03-24 58 views
1

我編譯下面的代碼。與參考編譯器的差異

#include <iostream> 

int main(int argc, char* argv[]) { 
    int a = 2; 
    int $b = a; 
    b = 3; 
    std::cout << a << std::endl; 
    return 0; 
} 

當我編譯它在Visual Studio 2012它輸出3按預期方式。但是,當我在g ++ 3.4.4中編譯它時,我收到以下錯誤。

error: `b' undeclared (first use this function) 

爲什麼下面的編譯在Visual Studio 2012而不是在G ++?

+1

不中我的VS2012編譯。您使用$ b的任何特定原因? – Inisheer 2013-03-24 06:42:12

+0

你真的在代碼中使用'$'嗎?這是不允許的。 – juanchopanza 2013-03-24 06:42:24

+0

'int $ b = a;'?這是什麼? – cmc 2013-03-24 06:42:53

回答

2

看着標題,我想你想這樣做:

int& b = a; 

&是,據我所知,唯一的標準申報的參考。

看@ H2CO3答案,爲什麼這編譯VS.

1

爲什麼下面在Visual Studio 2012

編譯,因爲無論是VS是胡扯或將其設置到C++/PHP模式。

但不是在G ++?

因爲b沒有聲明,只有$b

+0

爲了他們的防守,有文件證明[一個美元符號被允許在VC++](http://msdn.microsoft.com/en-us/library/565w213d.aspx)。 – 2013-03-24 07:44:25