🧨 Задача на выходные: битовое поле, которое лжёт

🧨 Задача на выходные: битовое поле, которое лжёт


Сделали компактную структуру флагов. Записали 1, сравниваем с 1 — не сходится. Призраки?

struct Flags { int active : 1; };

int main() {
Flags f;
f.active = 1;

if (f.active == 1)
std::cout << "ok\n"; // не печатает!
}

Задача: объясни, почему однобитное знаковое поле хранит не то, что ждёшь, и какое значение реально читается. Как объявить поле правильно?
Просмотры: 214
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти