2016-03-24 38 views
0

を持っていない私は、私は私のコードをコンパイルしようとすると、私はGCCからこの警告を取得するには、次の構造体gccが「何のインスタンスを定義していません無名の構造体/共用体」について警告しますが、構造体は、名前

typedef struct VMCS 
{ 
    uint32_t revision; 
    uint32_t abortValue; 
} __attribute__ ((packed)) VMCS; 

を持って

warning: unnamed struct/union that defines no instances 

VMCSが定義されていないことに起因するエラーが続きます。これに先行するコードは非常に無害で、stdint.hといくつかの#defineエントリを含んでいます。構造体を妨害するようなエラーを引き起こす可能性はありません。

+2

'VMCS'は何時でも空のマクロとして定義されていますか?それは間違いなくそれのように聞こえる。 – AnT

+0

Cで一般的に受け入れられている名前付け規則の1つは、マクロと_enum-constants_にのみ大文字の名前を使用することです。名前を変更して、やり直してください。また、プリプロセッサ出力を確認することもできます。 – Olaf

答えて

2

...との#defineエントリ

の数は、どうやらあなたは、空の置換リストとマクロとしてVMCSを定義しました。あなたのコードは、コンパイラによって

typedef struct 
{ 
    uint32_t revision; 
    uint32_t abortValue; 
} __attribute__ ((packed)); 

と表示されます。

関連する問題