尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

基础知识之 结构体内存对齐,联合体,枚举,大小端

发布时间:2026/9/19 14:18:29

资讯中心
01
ARTICLE

基础知识之 结构体内存对齐,联合体,枚举,大小端

基础知识之 结构体内存对齐,联合体,枚举,大小端
文章目录结构体内存对齐联合体枚举大小端结构体结构体是一个类型每个结构体都独一无二内存对齐内存对齐增加CPU读取的效率一次性读完整的数据避免多次访问用空间换时间因为CPU不是按字节读取内存的是按照字32位一次性读4字节64位一次读8字节对齐值min系统默认对齐数成员自身大小结构体最大对齐数结构体内成员对齐值最大值成员偏移量必须是该成员的对齐值整数倍#pragma pack()可以降低系统默认对齐数的上限但是无法提高正确的摆放可以节省空间大成员放前面structS2{intb;// 4字节偏移0shortc;// 2字节对齐2偏移4chara;// 1字节对齐1偏移6};// 总大小0-6对齐到4的倍数 → 8字节联合体联合体共用一块内存大小等于最大成员大小节省内存// 一个变量可能是int或float但不会同时用unionValue{intintVal;floatfloatVal;};structVariable{inttype;// 0int, 1floatValue val;// 共用内存};// 比分别存int和float节省4字节枚举定义一组常量枚举是让整数值有名字enumColor{RED0,// 默认0GREEN1,// 默认1BLUE20};//全局枚举变量intmain(){Color cRED;coutcendl;// 输出 0coutsizeof(Color)endl;// 输出 4int大小return0;}枚举底层是intc11可以自己指定// C11 指定底层类型enumclassStatus:uint8_t{// 只占1字节OK0,ERROR1,TIMEOUT2};coutsizeof(Status)endl;// 输出 1大小端大端低地址放高位数据小端低地址放低位数据如果电脑是大端或者直接取地址char*转换intmain(){intx1;char*p(char*)x;if(*p1){cout小端模式endl;}else{cout大端模式endl;}}
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。