バイト整列の実践(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;
}