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