2013-03-24 59 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