У вас есть какие-то документы, чтобы указать мне на? Или хотя бы ваши рассуждения? Мне просто любопытно на данный момент.

ая версия: Как узнать размер (в битах) отдельного поля поля c ++?

Для пояснения, пример поля, о котором я говорю:

struct Test {
    unsigned field1 : 4;  // takes up 4 bits
    unsigned field2 : 8;  // 8 bits
    unsigned field3 : 1;  // 1 bit
    unsigned field4 : 3;  // 3 bits
    unsigned field5 : 16; // 16 more to make it a 32 bit struct

    int normal_member; // normal struct variable member, 4 bytes on my system
};

Test t;
t.field1 = 1;
t.field2 = 5;
// etc.

Чтобы получить размер всего объекта Test легко, мы просто говорим

sizeof(Test); // returns 8, for 8 bytes total size

Мы можем получить нормальный член структуры через

sizeof(((Test*)0)->normal_member); // returns 4 (on my system)

Я хотел бы знать, как получить размер отдельного поля, скажем Test :: field4. Приведенный выше пример для нормального члена структуры не работает. Есть идеи? Или кто-то знает причину, почему это не может работать? Я совершенно уверен, что sizeof не поможет, так как он возвращает только размер в байтах, но если кто-то знает иначе, я весь слух.

Спасибо!

Ответы на вопрос(6)

Ваш ответ на вопрос