当前位置:网站首页>C语言联合体union占用空间大小问题
C语言联合体union占用空间大小问题
2022-08-05 05:16:00 【Mr.Fu!】
C语言联合体union占用空间大小问题
联合体占用空间大小要遵循两个原则:
- 大小要足够容纳下所有成员的大小,也就是找到占用空间最大的元素
- 占用空间最大的元素大小要可以被所有共用体成员类型整除开
- 如果元素大小不可以被共用体某一个成员的类似整除开,必须添加空白自己,直到可以被共用体所有成员类型整除开。
例:
Union U1{
Char a[9]; //占用9字节
Int b; // 占用4字节
Double c; //占用8字节
}
此时共用体大小为16,其中最大占用空间为9,其各成员类型占用空间为1,4,8,但是此时9无法整除4,8,所以必须添加空白字节,将大小添加为16,既可以整除1,4,8。
Union U2{
Char a[7];//占用7字节
Int b; //占用4字节
Double c; //占用8字节
}
此时共用体占用大小8字节,其中最大占用空间为8,其各成员类型占用空间大小为1(7),4,8,所以8可以被1,4,8整除,所以大小为8.
Union U3{
Char a; //占用1字节
Int b[3]; //占用12字节
Double c; //占用8字节
}
此共用体占用空间大小为16,最大占用空间为12,其各成员类型占用空间大小围殴1,4(3),8,此时12无法整除8,所以添加空白字节,添加到16,此时可被所有类型整除,所以大小为16.
边栏推荐
- CVPR2021 - Inception Convolution with Efficient Dilation Search
- 【数据库和SQL学习笔记】8.SQL中的视图(view)
- CVPR best paper winner Huang Gao's team from Tsinghua University presented the first dynamic network review
- 记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!
- [Go through 4] 09-10_Classic network analysis
- 初识机器学习
- Tensorflow steps on the pit notes and records various errors and solutions
- 全尺度表示的上下文非局部对齐
- 伪RTOS-ProroThread在CH573芯片上的移植
- 2021电赛资源及经验总结
猜你喜欢

Day1:用原生JS把你的设备变成一台架子鼓!

【论文精读】R-CNN 之预测框回归(Bounding box regression)问题详述
![[After a 12] No record for a whole week](/img/05/df9aeb04274e308e1341020f836821.jpg)
[After a 12] No record for a whole week

物联网-广域网技术之NB-IoT

MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA

物联网:LoRa无线通信技术

【数据库和SQL学习笔记】10.(T-SQL语言)函数、存储过程、触发器
![[Pytorch study notes] 9. How to evaluate the classification results of the classifier - using confusion matrix, F1-score, ROC curve, PR curve, etc. (taking Softmax binary classification as an example)](/img/ac/884d8aba8b9d363e3b9ae6de33d5a4.png)
[Pytorch study notes] 9. How to evaluate the classification results of the classifier - using confusion matrix, F1-score, ROC curve, PR curve, etc. (taking Softmax binary classification as an example)

Mysql-连接https域名的Mysql数据源踩的坑

网络信息安全运营方法论 (下)
随机推荐
[Go through 10] sklearn usage record
物联网:LoRa无线通信技术
CVPR 2020 - 频谱正则化
Facial Motion Capture 调研
【Pytorch学习笔记】8.训练类别不均衡数据时,如何使用WeightedRandomSampler(权重采样器)
【Pytorch学习笔记】11.取Dataset的子集、给Dataset打乱顺序的方法(使用Subset、random_split)
【数据库和SQL学习笔记】5.SELECT查询3:多表查询、连接查询
基于Flink CDC实现实时数据采集(四)-Sink接口实现
Service
拿出接口数组对象中的所有name值,取出同一个值
Kubernetes常备技能
Mesos learning
原来何恺明提出的MAE还是一种数据增强
单片机按键开发库-支持连击、长按等操作
如何编写一个优雅的Shell脚本(二)
记我的第一篇CCF-A会议论文|在经历六次被拒之后,我的论文终于中啦,耶!
读论文- pix2pix
flink实例开发-详细使用指南
MySql之索引
[Skill] Long-term update