gcc警告"未命名的struct / union,它不定义实例",但结构确实有一个名字

时间:2016-03-24 01:13:07

标签: c gcc struct gcc-warning

我有以下结构

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

当我尝试编译代码时,我从gcc

收到此警告
warning: unnamed struct/union that defines no instances

后面是由VMCS未定义引起的一堆错误。在此之前的代码是非常无害的,包括stdint.h和许多#define条目。似乎这些不会导致会干扰结构的错误。

1 个答案:

答案 0 :(得分:2)

  

...以及一些#define条目

显然,您将VMCS定义为具有空替换列表的宏。您的代码被编译器视为

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

因此警告。