本篇是上一篇字节对齐的补充。主要补充了包括数组,以及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;
}
原文地址:http://blog.csdn.net/liranke/article/details/46333597