Какой тип битового поля?

Я могу'не найти где-либо в стандарте C, где это указано. Например, в

struct { signed int x:1; } foo;

являетсяfoo.x lvalue типаint, или что-то другое? Это кажется неестественным для того, чтобы быть lvalue типаint так как вы не можете хранить любое значение типаint в нем только 0 или -1, но я могуНе могу найти язык, который бы назначил ему другой тип. Конечно, используемый в большинстве выражений, он будет повышен доint во всяком случае, но фактический тип имеет значение в C11 с_Generic, и я могу'в стандарте не найти никакого языка о том, как битовые поля взаимодействуют с_Generic или.

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

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