博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sizeof(联合体)
阅读量:7031 次
发布时间:2019-06-28

本文共 547 字,大约阅读时间需要 1 分钟。

  hot3.png

.联合体union特性

  • 联合体所有成员变量共享内存,相对于联合体首地址偏移量都为0
  • 同一时间只能存储1个被选择的变量,对其他成员变量赋值会覆盖原变量

2.联合体大小计算准则

  • 联合体大小要至少能容纳最大的成员变量
  • 联合体大小要是所有成员变量类型大小的整数倍

3.例子

typedef union u{      char a;    int b[5];    double c;    int d[3];     }U;  typedef struct s    {         int  e;        double f;           short g;                U h;              char i[2]; }S;
  •  
  • U大小至少要容纳最大的b[5]=4*5=20字节,同时要是变量类型最大值得整数倍,即sizeof(double)=8的整数倍,所有sizeof(U)=24
  • s的大小计算需要看上一篇关于结构体大小的计算的文章,联合体的自身对齐值为成员变量的最大对齐值,也就double的自身对齐值8,所以s得大小为0+4+4+8+2+6+24+2+6=56

转载于:https://my.oschina.net/lmoon/blog/873939

你可能感兴趣的文章
window下git多账户管理
查看>>
【327天】我爱刷题系列086(2017.12.29)
查看>>
React.js 小书 Lesson15 - 实战分析:评论功能(二)
查看>>
如何使用JSON和GSON
查看>>
weex脚手架
查看>>
js正则表达式学习
查看>>
C++ 开发 PHP 7 扩展之定义常量
查看>>
windows 命令行禁用密码策略,创建用户
查看>>
游戏小学生01-egret环境搭建
查看>>
从零开始写爬虫
查看>>
微信小程序,个人开发者创业新平台
查看>>
Chrome vim插件vimium快捷键学习
查看>>
【Redis】Redis常用命令
查看>>
node跨域方法
查看>>
JavaScript笔记——常见DOM知识
查看>>
Angular2、AngularJS、React、vue.js过去一年的Google趋势分析
查看>>
3D轮播图
查看>>
同源策略和跨域方法
查看>>
JavaScript中的delete操作符
查看>>
es7与es8其他知识
查看>>