Visual Studio C++ .h 中的结构初始化结构

Struct of struct initialization in .h on VisualStudio C++

我正在 Windows 上移植一个 linux 代码,我卡在数据包样式结构的初始化上..

这里是protocol.h的原代码:

struct header
{
    uint8_t type;  
    uint8_t ext;   
    uint8_t seqno;
    uint8_t notused
};

struct packet
{
    struct header head;

    packet(uint8_t t, uint8_t e, uint8_t s) : head( { t, e, s, 0 } ) <== Error here
    { }
};

与 : error C2059: 语法错误: ')' 错误 C2447:“{”:缺少函数头(旧式正式列表?)

你能告诉我一些建议吗?

非常感谢

塞布

在我看来,最简单的方法就是向 struct header:

添加一个构造函数
struct header
{
    uint8_t type;  
    uint8_t ext;   
    uint8_t seqno;
    uint8_t notused;
    header(uint8_t t, uint8_t e, uint8_t s, uint8_t n)
        : type(t), ext(e), seqno(s), notused(n)
    { }
};

struct packet
{
    header head;

    packet(uint8_t t, uint8_t e, uint8_t s) : head(t, e, s, 0)
    { }
};