字节对齐实践(2)

来源:互联网 发布:德兴软件ui设计师 编辑:程序博客网 时间:2024/05/29 04:34

本篇是上一篇字节对齐的补充。主要补充了包括数组,以及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;}
0 0
原创粉丝点击