campi di bit in C ++




campo di bit con ++, strutture in C ++ per i principiantiIn C ++, è possibile impostare un certo numero di elementi della struttura di bit di memoria. per esempio, se si desidera creare una struttura di dati, Registra corrispondente a qualsiasi dispositivo. Il tipo di elemento (è chiamato un campo di bit) tale struttura può essere un intero (più frequentemente di tipo Non segnato) o enumerable (enum).

campo Sintassi bit nella struttura è definita come segue:
campo di bit con ++, strutture in C ++ per i principiantiper esempio:

Abbiamo determinato la struttura, in cui il numero di variabili specificate occuperà bit. 2 + 2 + 4 dà 8 po ' (Siamo in fila per byte di dimensione). Se finisci in questa struttura ancora Non segnato corto quinto : 5; – Si sarà già coinvolto 2 byte. Il secondo byte sarebbe ovviamente spazzatura 8 – 5 = 3 bit, di essere reclamati.

a differenza di associazioni (unione) dimensioni di campi di bit varia, qualunque, quanti bit il programmatore ha ordinato. Se ordinato 7 po ' (dire le due variabili su 3 bit, e uno – 1 po '), allora C ++ avrà un byte (8 po ') In queste tre variabili. Se il programmatore ordinerà 11 po ', allora C ++ avrà due byte (16 po '). E nel secondo byte verranno utilizzati solo 5 po ', e il resto sono suscettibili di essere, coda come inutile. Pertanto, nella descrizione di campi di bit dovrebbe essere considerato un “allineamento” di byte. vale a dire. distribuirlo come variabili, in modo che ogni bit è stato rivendicato. Per l'allineamento della memoria è possibile utilizzare i campi di bit senza nome.

Ecco un altro breve esempio, in cui i campi di bit sono riservati per la data e l'ora per la dimostrazione della tecnologia.

risultato:

campo di bit con ++, strutture in C ++ per i principianti

Come si può vedere, del campo di bit data e l'ora negozio. Ci vuole questa struttura 6 byte, anche se è sufficiente per cinque. E poi ci sono ragioni: il compilatore può align ritirato memoria di un numero pari di byte. Per esempio, se avevamo prenotato 18 po ', il compilatore ci porterà non 3 byte, e 4, considerando che la CPU ama lavorare con i byte, e non con i bit. Almeno la memoria o il processore registra il bit non preferisce, vale a dire byte. Secondo il suo po ': alimentazione x32 4 byte, 64 ha 8 byte. Anche se questi byte lavoro è solo uno di loro, il resto sarà ancora recuperare il ritardo.

piccolo esito: campi di bit in strutture comunemente usato in programmazione a basso livello, quando il lavoro è con valori, in grado di prendere alcuna byte, ei singoli bit (da, che piccoli valori).

Newsletter nuove lezioni sulla programmazione:

campi di bit in C ++
5 (100%) 3 voti

Lascia un Commento

L'indirizzo email non verrà pubblicato. i campi richiesti sono contrassegnati *