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が参照という概念がないのでのような変数を宣言0は無効な構文です。
リファレンスを使用している場合は、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++は全く異なる言語です。タグを1つ選択します。 – tambre
CとC++の混乱が問題の根源であるため、Cタグはそのままになります。 – dbush