当前位置:网站首页>C语言字节对齐,看这篇就够了
C语言字节对齐,看这篇就够了
2022-08-11 05:23:00 【丶随心】
#pragma pack(N)
编译器用'N'来设置数据的对齐方式。默认32位OS对齐字节是4,64位对齐字节是8。'N'有可能影响结构体内部成员的对齐位置,以及结构体整体大小。
gcc 中,N不能大于默认的对齐字节数,否则不生效。
对齐规则
规则一:
每个成员变量在其结构体内的偏移量都是“MIN(N,成员变量类型的大小)”的倍数。
规则二:
如果有嵌套结构体,那么内嵌结构体的第一个成员变量在外结构体中的偏移量,是“MIN(N,内嵌结构体中那个数据类型大小最大的成员变量)”的倍数。
规则三:
整个结构体的大小要是“MIN(N,这个结构体内数据类型大小最大的成员变量)”的倍数。如果有内嵌结构体,那么取“MIN(N,内嵌结构体中数据类型大小最大的成员变量)”作为计算外结构体整体大小的依据。
边栏推荐
猜你喜欢
随机推荐
《现代密码学》学习笔记——第三章 分组密码
《现代密码学》学习笔记——第五章 密钥分配与密钥管理
微信小程序-腾讯云即时通信 IM 小程序直播(一)
写博客周志
GBase 8s存储结构简介及空间管理
centos—docker安装mysql
NAT模式 LVS负载均衡群集部署
let 块级作用域
Nodered系列—使用mqtt写入国产数据库tDengine
GBase 8s分片技术介绍
Androd 基本布局(其一)
函数:万能的百宝箱
>>技术应用:*aaS服务定义
sand和mana两大元宇宙游戏,哪个更有潜力?
【uniapp】跨端开发问题记录
IDEA本机连接远程TDengine不成功,终于配置成功
BoredApeYachtClub 无聊猿-NFT 源码解析第二节
Windows64位MySQL配置式安装(绿色版)
利用Redis的bitMap完成用户签到功能
Fragment 和 CardView