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