che cos'è un limite di lunghezza di parole?


0

Sto leggendo questo articolo:

http://en.wikipedia.org/wiki/Struct_%28C_programming_language%29

E afferma quanto segue:

"La struttura C corrisponde direttamente al tipo di dati del linguaggio assembly dello stesso uso ed entrambi fanno riferimento a un blocco contiguo di memoria fisica, generalmente delimitato (dimensionato) da limiti di lunghezza di parola. Implementazioni di linguaggio che potrebbero utilizzare limiti di mezza parola o byte ( dare imballaggi più densi, usando meno memoria) erano considerati avanzati a metà degli anni ottanta ".

Che cos'è un limite di lunghezza delle parole?

Risposte:


0

Alcune architetture allineeranno i dati in una determinata lunghezza di parola (due byte, quattro byte, ecc.) Definendo così questa struttura in C:

struct sample {
  int a;
  char b;
}

Potrebbe finire con una dimensione di otto byte anche se si prevede che siano solo cinque (quattro byte per ae uno per b). Ciò garantisce che ogni membro inizi in una posizione multipla di 4. E dipende dall'architettura in cui si verifica la compilazione. Se mai hai bisogno di forzare l'imballaggio puoi farlo:

#pragma pack(1)
struct sample {
  int a;
  char b;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.