Максимальный размер битового поля в C или C ++?

Возможный дубликат:
максимальный размер структуры битового поля (C99, C ++)

Есть ли ограничение на количество бит, которые я могу указать в битовом поле в C или C ++? Например, я мог бы сделать это:

struct HugeInt {
int myInt: 1000;
};

Я спрашиваю как о C, так и о C ++, так как я знаю, что спецификации языка иногда отличаются, и хотел посмотреть, будет ли приведенный выше пример работать или не работать в C или C ++.

10

Решение

В C11, раздел 6.7.2.1, пункт 4:

Выражение, которое определяет ширину битового поля, должно быть выражением целочисленной константы с неотрицательным значением, которое не превышает ширину объекта того типа, который был бы указан, если бы двоеточие и выражение были опущены. Если значение равно нулю, декларация не должна иметь декларатора.

Короче говоря, он должен быть между нулем и размером типа, если у него не было части битового поля.

14

Другие решения

размер битового поля myInt (1000 бит) не может превышать размер его типа (int, обычно 32 бита)

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector