2017-04-21 7 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++は全く異なる言語です。タグを1つ選択します。 – tambre

+2

CとC++の混乱が問題の根源であるため、Cタグはそのままになります。 – dbush

答えて

3

あなたが代わりにC++コンパイラのCコンパイラでコンパイルしている。

Cが参照という概念がないのでのような変数を宣言0は無効な構文です。

リファレンスを使用している場合は、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! 
関連する問題