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

时间:2015-01-10 10:49:27

标签: c++ struct

我正在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
    { }
};

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

你能告诉我一些建议吗?

非常感谢

的Seb

1 个答案:

答案 0 :(得分:0)

在我看来,最简单的方法就是在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)
    { }
};