当前位置:网站首页>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,内嵌结构体中数据类型大小最大的成员变量)”作为计算外结构体整体大小的依据。
边栏推荐
猜你喜欢
随机推荐
NodeRed系列—创建mqtt broker(mqtt服务器),并使用mqttx进行消息发送验证
Nodered系列—使用mqtt写入国产数据库tDengine
使用TD-workbench管理tDengine数据库数据
DOM破坏
Nodered系列—使用node-red-node-mysql写入mysql详细步骤
GBase 8s分片技术介绍
JS继承的几种方式及优缺点
Haproxy集群
php反序列化pop链
order by注入,limit注入,宽字节注入
数组:一个存取数字的魔盒
国内自媒体宣发.多媒体发稿的优势
基于uniapp开发的聊天界面
NodeRed系列—nodered安装及基本操作
Docker安装Mysql及常用命令
GBase 8a语法格式
微信小程序部分功能细节
Androd 基本布局(其一)
BoredApeYachtClub 无聊猿-NFT 源码解析第二节
若依分离版—移动端开发通知公告功能









