Qual é o tipo de um campo de bits?
Não consigo encontrar em qualquer lugar no padrão C onde isso é especificado. Por exemplo, em
struct { signed int x:1; } foo;
éfoo.x
um lvalue do tipoint
, ou alguma outra coisa? Parece antinatural que seja um lvalue do tipoint
desde que você não pode armazenar qualquer valor do tipoint
nela, apenas 0 ou -1, mas não consigo encontrar nenhum idioma que possa atribuir um tipo diferente. Claro, usado na maioria das expressões, seria promovido aint
de qualquer forma, mas o tipo real faz a diferença em C11 com_Generic
, e não consigo encontrar nenhuma linguagem no padrão sobre como os bitfields interagem com_Generic
ou.