Questo è il mio campo di bitavvertimento quando si usa campo di bit con unsigned char
struct {
unsigned char v64 : 1;
unsigned char leg : 7;
} valid;
Allora ottengo l'avvertimento:
main.c:17:3: warning: type of bit-field ‘v64’ is a GCC extension [-pedantic]
main.c:18:3: warning: type of bit-field ‘leg’ is a GCC extension [-pedantic]
Se cambio a int
non v'è alcun avvertimento. Ma voglio un bitfield di un byte (carattere senza segno).
Come?
'int' ha un significato speciale all'interno dei campi di bit. Qual è 'sizeof (struct valid)'? – Pubby
@Pubby: using int, = 4; char unsigned = 1. – Fabricio
Questa è un'estensione del compilatore molto comune. Forse dovresti ignorare l'avviso per avere la tua torta e mangiarla. –