Perché l'allineamento di default è di 4 byte
Tieni presente che un allineamento ad 1 può ridurre le prestazioni complessive.
La char[6] diventa di 8, il bool di 4, ma dipende anche dall'ordine in cui poni le variabili ... senza pragma pack se avessi scritto
float imptot,costivari;
char partiva[12],data[12];
char id[6];
bool pagato;
sarebbe stato diverso