C · Avançado · Português · Técnico
campo de bits
Membro de struct declarado com largura em bits, como unsigned flag : 1. Permite empacotar várias flags ou valores pequenos em poucos bytes.
Onde usar
Aparece em registradores de hardware e protocolos. A ordem dos bits e o layout são definidos pela implementação, então não servem para formatos binários portáveis.
Em código
struct flags {
unsigned lido : 1;
unsigned erro : 1;
unsigned modo : 3;
};
struct flags f = {.lido = 1, .modo = 5};Exemplos
Usei campos de bits para guardar três flags num único byte.
Não confie na ordem dos campos de bits entre compiladores.
Cuidado
Tentar pegar o endereço de um campo de bits com &, o que não é permitido.
Sinônimos
bit-field