Я переношу linux-код в Windows, и я застрял в инициализации структуры стиля пакета.
Здесь исходный код протокола.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: '{': отсутствует заголовок функции (формальный формат старого стиля?)
Не могли бы вы рассказать мне несколько советов?
большое спасибо
Себ
Самый простой способ, на мой взгляд, просто добавить конструктор в 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)
{ }
};
head{ t, e, s, 0 }
, или опустить скобки и попробоватьhead( t, e, s, 0 )