C语言。设计一个通信录的结构体类型,并画出该结构体变量在内存的存储形式? 50

设计一个通信录的结构体类型,并画出该结构体变量在内存的存储形式。... 设计一个通信录的结构体类型,并画出该结构体变量在内存的存储形式。 展开
 我来答
草原上之狼
高粉答主

2020-05-26 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.9万
采纳率:93%
帮助的人:4017万
展开全部
结构体在内存中的存储方式,和常规的C语言变量、常量存储方式类似,唯的不同在于对齐。

只所以要进行数据对齐是因为编译器对结构的存储的特殊处理能提高CPU存储变量的速度,一般来说,32位的CPU内存以4字节对齐,64位的CPU的以8字节的对齐。一般可以使用#pragma pack()来指出对齐的字节数。比如下面的代码,在debug会显示结构体test的内存大小为28,如果生成release版则所占内存大小为32 。

#include <stdio.h> #ifdef _DEBUG#pragma pack(4)struct test{ char x[13]; // 13 int d; // 4 double f; // 8}ss;#else#pragma pack(8)struct test{ char x[13]; // 13 int d; // 4 double f; // 8}ss;#endif int main(void){ printf("%d\n", sizeof(ss)); return 0;}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式