Tempo fa ho trovato informazioni riguardo ad un particolare struct che si poteva creare in C che veniva definito a campi di bit...
Attraverso questi campi si potevano creare struct contenti delle variabili che occupavano (anche se in maniera astratta) un bit.. e quindi di poteva creare uno struct byte in cui si poteva modificare bit per bit...
lo struct è il seguente
Quel : 1 indica che la grandezza della variabile deve essere di 1 bit...codice:struct byte { unsigned char b0 : 1; unsigned char b1 : 1; unsigned char b2 : 1; unsigned char b3 : 1; unsigned char b4 : 1; unsigned char b5 : 1; unsigned char b6 : 1; unsigned char b7 : 1; };
tutto funziona e se faccio sizeof su quello struct ricevo 1 .. cioè 1 byte...
il problema è questo.. io devo fare un programma che lavori con questi campi e quindi ho deciso di fare un vettore di 8 elementi ciascunop da 1 bit per formare il byte evitando di scrivere b1,b2,b3... ecc... che renderebbero scomodissimo il lavoro...
quindi ho provato a fare una roba del genere...
Ma non funziona.. Visual C mi dice :codice:struct byte { unsigned char b[8] : 1; };
'b' : bit field cannot have indirection
E non so come procedere.. se qualcuno sa come precedere... Grazie mille a tutti e ciao!!!![]()

Rispondi quotando

Prego?
