结构引用编译错误:预期标识符或“(”前“和”令牌
问题描述:
typedef struct {int a; int b;} A_t;
A_t AA;
AA.a = 3; AA.b = 4;
// compilation fails here
A_t& BB = AA;
当试图建立到现有结构的参考,我得到以下编译错误: “预期标识符或‘(’前' &“令牌”结构引用编译错误:预期标识符或“(”前“和”令牌
我缺少什么?
答
你是一个C编译器,而不是C++编译器编译。
C没有引用的概念,所以声明一个变量一样A_t &BB
是无效的语法。
如果您使用的是引用,则需要使用C++编译器进行编译。
答
如果你正在写一个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!
这显然是C++,所以删除C标记。并用C++编译器编译 – Jonas
C和C++是完全不同的语言。为标签选择一个。 – tambre
C标签应该保留,因为C和C++之间的混淆是问题的根源。 – dbush