2017-04-21 55 views
0
typedef struct {int a; int b;} A_t; 
A_t AA; 
AA.a = 3; AA.b = 4; 
// compilation fails here 
A_t& BB = AA; 

当试图建立到现有结构的参考,我得到以下编译错误: “预期标识符或‘(’前' &“令牌”结构引用编译错误:预期标识符或“(”前“和”令牌

我缺少什么?

+5

这显然是C++,所以删除C标记。并用C++编译器编译 – Jonas

+0

C和C++是完全不同的语言。为标签选择一个。 – tambre

+2

C标签应该保留,因为C和C++之间的混淆是问题的根源。 – dbush

回答

3

你是一个C编译器,而不是C++编译器编译。

C没有引用的概念,所以声明一个变量一样A_t &BB是无效的语法。

如果您使用的是引用,则需要使用C++编译器进行编译。

0

如果你正在写一个C++程序,那么你很可能做

struct A_t{ 
int a; 
int b; 
}; 
A_t AA; // You don't need to preceed the struct name with the keyword struct 
AA.a = 3; 
AA.b = 4; 
// your compilation failed in the below step 
A_t& BB = AA; // Well, reference to variable (as in &BB) is a functionality of C++. 
//If you get an error here, you're probably using a C compiler for a C++ pgm! 
相关问题