バイト整列の実践(2)
本編は前編のバイト揃えの補足です.主に配列とunionタイプを含む構造の実践を補充した.
/* :Dev-C++ 4.9.9.2 */
/* : * 1. sizeof union,struct, class 。 * 2. 1, 。 * 3. struct S2 , struct S3 ,why? */
/* source: */
#include <stdio.h>
typedef union {
long i;
int k[5];
char c;
} U1;
struct S1 {
int cat;
double dog;
};
struct S2 {
int cat;
U1 cow;
double dog;
};
struct S3 {
int cat;
double dog;
U1 cow;
};
class A{ };
int main()
{ // result:
printf(" sizeof(U1) = %d/n", sizeof(U1)); // 20
printf(" sizeof(struct S1) = %d/n", sizeof(struct S1)); // 16
printf(" sizeof(struct S2) = %d/n", sizeof(struct S2)); // 32
printf(" sizeof(struct S3) = %d/n", sizeof(struct S3)); // 40
printf(" sizeof(A) = %d/n", sizeof(A)); // 1
while(1);
return 0;
}