在一个union类型结构中,所有的成员公用同样的存储空间,其占用的大小为其成员中需要空间最大者;

union本身只保留一块地址空间,因为只有一个成员真正存储于该地址, 但这块地址也要满足内存对齐原则。

 #include <stdio.h>

 union U1 {
int a;
char b;
}; union U2 {
char a[];
double b;
}; union U3 {
U1 a;
U2 b;
char c[];
};
int main() {
printf("size of U1: %ld\n", sizeof(U1));
printf("size of U2: %ld\n", sizeof(U2));
printf("size of U3: %ld\n", sizeof(U3));
return ;
}

注意U3对齐还是以前面的double进行对齐,所以应该是对齐到下一个8的位数,也就是24,而不是20.

 root@xxj-VirtualBox:~/interview# ./union
size of U1:
size of U2:
size of U3:

最新文章

  1. Wo的书单
  2. Scalaz(2)- 基础篇:随意多态-typeclass, ad-hoc polymorphism
  3. zpf框架的business使用方法
  4. web安全之sql注入实例(5.0之前的)
  5. [转]查看手机已经记住的WIFI密码
  6. HTML标签的默认样式
  7. 【hadoop】mapreduce原理总结
  8. getGuid()
  9. 代码片段--Makefile之大型工程项目子目录Makefile的一种通用写法
  10. org.apache.hadoop.fs-BufferedFSInputStream
  11. MSP430常见问题之LCD 显示驱动类
  12. 【转】EXT JS MVC开发模式
  13. myisam和innodb区别
  14. [java基础] 遇到的一个关于返回值泛型的问题
  15. jar包 pom
  16. Java实训作业
  17. Go Rand小结
  18. GRE tunnel 2
  19. Windows 系统安装Docker Compose 步骤
  20. tornado框架&amp;三层架构&amp;MVC&amp;MTV&amp;模板语言&amp;cookie&amp;session

热门文章

  1. POJ 2429 GCD &amp; LCM Inverse (Pollard rho整数分解+dfs枚举)
  2. 【python】format函数格式化字符串的用法
  3. HDU1286新朋友欧拉函数版
  4. ubuntu下使用反编译apk,工具dex2jar和jd-gui
  5. Oracle错误代码大全
  6. Machine Schedule(poj 1274)
  7. Maven类包冲突终极解决方案
  8. 【读书笔记】读《JavaScript模式》 - 函数复用模式之现代继承模式
  9. 对线程调度中Thread.sleep(0)的深入理解
  10. 联系旭日150安装CentOS5.X版本手记