1. 分析结构体大小

    struct S1
    {
    char c1;
    double d;
    char c2;
    char c3;
    };
    struct S2
    {
    char c1;
    char c2;
    char c3;
    double d;
    };
    struct S3
    {
    char c1;
    S1 s;
    char c2;
    char c3;
    };

  1. 分析结构体大小

    #pragma pack(1)
    struct S1
    {
    char c1;
    double d;
    char c2;
    char c3;
    };
    #pragma pack()
    struct S3
    {
    char c1;
    S1 s;
    char c2;
    char c3;
    };

  1. 分析结构体大小

    #pragma pack(4)
    struct S1
    {
    char c1;
    double d;
    char c2;
    char c3;
    };
    #pragma pack()
    struct S3
    {
    char c1;
    S1 s;
    char c2;
    char c3;
    };

  1. 分析结构体大小

    struct S1
    {
    char c1;
    double d;
    char c2;
    char c3;
    };
    #pragma pack(1)
    struct S3
    {
    char c1;
    S1 s;
    char c2;
    char c3;
    };
    #pragma pack()

Q.E.D.