Правильно ли это инициализировать все битовые поля в структуре?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Правильно ли это инициализировать все битовые поля в структуре?

Сообщение Anonymous »

Я упаковываю логические значения в структуру C++ и хочу инициализировать их все нулями при создании.
Это правильный/безопасный способ сделать это? >
Думаю, что да, но я не уверен на 100 % и хотел бы, чтобы юристы высказали свое мнение...
struct packed_flags {
// All the flags (there's less than 16 of them)
bool f1: 1;
bool f2: 1;
bool f3: 1;
bool f4: 1;
// ...

// Pad the struct to a 16-bit size
uint16_t: 0;

// Constructor to initialize them all to 'false'
packed_flags() {
*(uint16_t*)(this) = 0;
}
} flags;


Подробнее здесь: https://stackoverflow.com/questions/791 ... n-a-struct
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»