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

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

struct { signed int x:1; } foo;

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

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

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