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;
當試圖建立到現有結構的參考,我得到以下編譯錯誤: 「預期標識符或‘(’前' &「令牌」結構引用編譯錯誤:預期標識符或「(」前「和」令牌
我缺少什麼?
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