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