В настоящее время я работаю с устаревшим кодом C ++ , успешно скомпилированным с помощью gcc 2.9.X.
Меня попросили перенести этот устаревший код на gcc 3.4.X. Большинство ошибок было легко исправлено, но именно эта меня озадачивает.
Контекст:
struct TMessage
{
THeader header;
TData data;
};
struct THeader
{
TEnum myEnum;
TBool validity;
};
Что было сделано:
const TMessage init = {{0}};
/* Later in the code ... */
TMessage message = init;
Мой вопрос (ы) :
Что означает оператор {{}}? Инициализирует ли первое поле (заголовок ) двоичный 0? Инициализирует ли первое поле первой структуры ( перечисление ) (литерал) 0?
Я получаю ошибку 3.4.6 недопустимое преобразование из 'int' в 'TEnum'
, с одной или двумя парами фигурных скобок.
Как я могу установить в моей структуре набор нулей без использования memset?
Заранее спасибо.