Что означает эта конструкция? [Дубликат]

0
class Test 
{

    struct
    {
      unsigned has_some_value1: 1;
      unsigned has_some_value2: 1;
    } info;
};

Что такое unsigned has_some_value1:1; означает?

Должно выполняться следующее утверждение: sizoef(type) == bit1 +... + bitn?

Теги:

2 ответа

2
Лучший ответ

Они называются "битовыми полями". has_some_value1 занимает один бит. has_some_value2 также занимает один бит - возможно, следующий физический бит в памяти или, может быть, нет (зависит от того, как ваш компилятор настроен для обработки выравнивания битового поля).

  • 0
    Очевидно, что sizeof (), как минимум, округляет размер до следующего целого числа байтов после суммирования ширины в битах и деления на 8. Но это также может быть больше из-за специфического для архитектуры и компилятора выравнивания структуры вопросы.
1

Битовое поле в нестатическом экземпляре неименованной структуры, называемой "информация", которая сама является членом "теста".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню