当前位置:网站首页>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.
边栏推荐
猜你喜欢

发顶会顶刊论文,你应该这样写作

flink实例开发-详细使用指南

Facial Motion Capture 调研

【数据库和SQL学习笔记】7.SQL中的插入(INSERT)、删除(DELETE)、更新(UPDATE)

【论文精读】R-CNN 之预测框回归(Bounding box regression)问题详述

基于STM32F407的WIFI通信(使用的是ESP8266模块)

轻松接入Azure AD+Oauth2 实现 SSO
![[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)](/img/7d/7f1301c30034f1c247d41f04c40244.png)
[Kaggle project actual combat record] Steps and ideas sharing of a picture classification project - taking leaf classification as an example (using Pytorch)

【数据库和SQL学习笔记】8.SQL中的视图(view)

spingboot 容器项目完成CICD部署
随机推荐
el-pagination分页分页设置
【论文阅读-表情捕捉】High-quality Real Time Facial Capture Based on Single Camera
原来何恺明提出的MAE还是一种数据增强
Flink Distributed Cache 分布式缓存
Flink Oracle CDC写入到HDFS
CVPR2020 - 自校准卷积
dataframe 常用操作
MSRA提出学习实例和分布式视觉表示的极端掩蔽模型ExtreMA
《基于机器视觉测量系统的工业在线检测研究》论文笔记
单变量线性回归
[Go through 11] Random Forest and Feature Engineering
如何停止flink job
怎样在Disciples门徒获得收益?
【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
A deep learning code base for Xiaobai, one line of code implements 30+ attention mechanisms.
[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
SSL 证书签发详细攻略
Thread handler句柄 IntentServvice handlerThread
Service