C 错误:声明未声明任何内容[-Werror]|

C 错误:声明未声明任何内容[-Werror]|,c,struct,C,Struct,这是一个非常业余的问题,我相信答案会非常简单,但我无法解决这个问题。我有一个.h文件和对应的.cpp文件,但由于某种原因,每当我尝试使用gcc编译时,我总是会遇到错误: 声明不声明任何内容//第10行 应为“:”,“,”,“;”,“}”或“=”标记//第5行之前的“属性” 我希望使用像这样的BO2补偿: typedef struct BO2Offsets { struct Prestige { u32 offset = 0x000000; char

这是一个非常业余的问题,我相信答案会非常简单,但我无法解决这个问题。我有一个.h文件和对应的.cpp文件,但由于某种原因,每当我尝试使用gcc编译时,我总是会遇到错误:

声明不声明任何内容//第10行
应为“:”,“,”,“;”,“}”或“=”标记//第5行之前的“属性

我希望使用像这样的BO2补偿:

typedef struct BO2Offsets
{
    struct Prestige
    {
        u32 offset = 0x000000;
        char data[13] = { 0x00, 0x01, 0x02, 0x03, 0x04,
                          0x05, 0x06, 0x07, 0x08, 0x09,
                          0x0A, 0x0B, 0x0C
                        };
    };
} BO2Offsets;
编辑2: 已解决,谢谢:)


您可能正在使用C编译器,但代码是C++(这也是C++14)。您需要更改编译器(或工具集),或者更改代码,使其能够使用C编译器进行编译

编辑:哪一行?它是否说未使用
struct Prestige

根据您的编辑:

typedef struct BO2Offsets BO2Offsets;
struct BO2Offsets
{
    struct Prestige
    {
        u32 offset;
        char data[13];
    } prestige;
};

我使用了小写字母作为变量,因此它明显不同于
Prestige

类型。请至少阅读一本关于C的书。
typedef struct BO2Offsets BO2Offsets;
struct BO2Offsets
{
    struct Prestige
    {
        u32 offset;
        char data[13];
    } prestige;
};
 typedef struct Prestige
        {
            u32 offset = 0x000000;
            char data[13] = { 0x00, 0x01, 0x02, 0x03, 0x04,
                              0x05, 0x06, 0x07, 0x08, 0x09,
                              0x0A, 0x0B, 0x0C
                            };
        } prestige; // Small letters
...
BO2Offsets BO2;
BO2.prestige.offset;