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


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;



};
Quel : 1 indica che la grandezza della variabile deve essere di 1 bit...

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...

codice:
struct byte {

    unsigned char b[8] : 1;

};
Ma non funziona.. Visual C mi dice :

'b' : bit field cannot have indirection

E non so come procedere.. se qualcuno sa come precedere... Grazie mille a tutti e ciao!!!