错误:声明没有声明任何内容[-Werror] |

时间:2016-04-04 12:02:32

标签: c struct

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;

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

  

声明没有声明//第10行   预期':',',',';','}'或' 属性'之前' ='令牌//第5行

我想使用这样的BO2Offsets:

BO2Offsets BO2;
BO2.Prestige.offset;

EDIT2: 已解决,谢谢:)

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

1 个答案:

答案 0 :(得分:2)

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

编辑:哪一行?是否说struct 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;

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