首页
社区
课程
招聘
[分享]结构体
发表于: 2021-4-22 00:46 3540

[分享]结构体

2021-4-22 00:46
3540

结构体规范命名:tag
重定向:> 重新定义标准输出,输入设备。例如文件 std
重定位:模块创建时 基质被占,就要重定位。
DOB:data of Birth

 

stdlib.h :标准函数库
stddef:标准定义库
stdio.h 标准IO库
**

结构体对齐

设编译对齐为zp
设成员变量到结构体变量的地址差为member offset
设成员变量的类型位member type
member offset 必须满足
member offset % min(zp,sizeof(member type)) == 0

 

设结构体自身对齐值为StrAli
StrAli 满足:
StrAli = max(sizeof(member type),sizeof(member type1)...)
StrAli = min (Zp ,)
sizeof(结构体变量)必须满足:
sizeof(结构体变量) %
StrAli **== 0;

操作系统对结构体的寻址方式:

structObj . Member:结构体对象
structObj . Member or structObj .->Member
member type)((int)&structObj)+ member offset

 

注意:结构体嵌套的话 StrAli = 嵌套结构体的对齐值。

 

#define GETOFFSET(s,m) (size_t)&((s)0->m) *获取结构体 成 员 偏移的宏。自己实现的
offsetof: 标准库关键字 头文件: <stddef.h>

代码修改结构体对齐值

#pragma pack(push) //保存当前对齐值

 

#pragma pack(1) //修改当前对齐值为1

 

#pragma pack(pop) //回复当前对齐值为原来保存的之。

 

**


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以加楼主一个微信吗,我想报六月的科锐,但有些问题还是想请教一下楼主?
2021-4-22 16:11
0
雪    币: 276
活跃值: (1116)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你私信一下我,这里说不太好
2021-4-23 11:53
0
游客
登录 | 注册 方可回帖
返回
//