6.3.1.1p2 говорит
В выражении можно использовать следующее, где можно использовать int
или unsigned int
:
Объект или выражение с целочисленным типом (отличным от int
или unsigned int
), чей ранг целочисленного преобразования меньше или равен рангу int
и unsigned int
.
Битовое поле типа _Bool
, int
, signed int
или unsigned int
.
Что является цельювторая точка маркера?
Зачем пропускать целочисленные поля других типов, чей ранг меньше, чем int
?
Означает ли это, что я могу сделать, например:
printf("%d\n", (struct{ _Bool x:1; }){0}.x);
но не:
printf("%d\n", (struct{ unsigned short x:1; }){0}.x);