Salve a tutti.
Mi sono trovato di fronte ad un problema alquanto fastidioso.
Io ho a che fare con una struct di questo tipo:
codice:
struct MioHeader {
int HD_first;
char HD_dsc[16];
int HD_second;
INT64 HD_time1;
INT64 HD_time2;
INT64 HD_time3;
int HD_third;
int HD_begin;
int HD_end;
};
Se provo a stampare le dimensioni di ciascun tipo, come da codice seguente:
codice:
printf("Dimensione int: %d\n", sizeof(int));
printf("Dimensione char: %d\n", sizeof(char));
printf("Dimensione INT64: %d\n", sizeof(INT64));
ottengo, correttamente, questo output:
codice:
Dimensione int: 4
Dimensione char: 1
Dimensione INT64: 8
Quello che non mi torna è la dimensione della struttura, che a mio avviso, date le condizioni precedenti, dovrebbe essere 60 byte. In realtà, questo codice:
codice:
printf("Dimensione struct: %d\n", sizeof(struct MioHeader));
mi stampa a video il valore 64. Se provo a salvare su file i byte della struttura, infatti, noto che subito dopo i tre campi INT64 vengono piazzati 4 byte (tutti con valore 0) che non so proprio da dove vengano...
Chi mi risolve questo arcano?
Grazie mille.
Ciao.