社区
C++ 语言
帖子详情
关于内存对齐
方紫涵
2012-12-20 05:02:30
#pragma pack(4)
#pragma pack()
的作用是不是 先把对齐系数设置为4 然后还原对齐系数?
或者我对这个4不是对齐系数 而是?。
...全文
92
2
打赏
收藏
关于内存对齐
#pragma pack(4) #pragma pack() 的作用是不是 先把对齐系数设置为4 然后还原对齐系数? 或者我对这个4不是对齐系数 而是?。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nice_cxf
2012-12-20
打赏
举报
回复
先把对齐系数设置为4 然后还原对齐系数? 就是这个意思
lee_鹿游原
2012-12-20
打赏
举报
回复
#pragma pack (),取消自定义字节对齐方式。
关于
内存对齐
那些事
意思是,考虑到CPU处理内存的方式(32位的x86 CPU,一个时钟周期可以读取4个连续的内存单元,即4字节),使用字节对齐将会提高系统的性能(也就是CPU读取内存数据的效率。为了保证结构体内的每个成员都能够放在它自然对齐的位置上,对这个结构体本身来说最理想的
内存对齐
数值应该是结构体里
内存对齐
数值最大的成员的
内存对齐
数。大意是说,有不少平台的CPU,比如Alpha、IA-64、MIPS还有SuperH架构,若读取的数据是未对齐的(比如一个4字节的int在一个奇数内存地址上),将拒绝访问,或抛出硬件异常。
关于
内存对齐
的问题
在最近的项目中,我们涉及到了“
内存对齐
”技术。对于大部分程序员来说,“
内存对齐
”对他们来说都应该是“透明的”。“
内存对齐
”应该是编译器的 “管辖范围”。编译器为程序中的每个“数据单元”安排在适当的位置上。但是C语言的一个特点就是太灵活,太强大,它允许你干预“
内存对齐
”。如果你想了解 更加底层的秘密,“
内存对齐
”对你就不应该再透明了。 一、
内存对齐
的原因 大部分的参考资料都是如是说的: 1、平台原...
关于
内存对齐
你需要了解的事
这篇文章的目的是带你了解什么是
内存对齐
,具体的
内存对齐
的细节、处理方式、不同架构则不会去详细讲解,只做科普文用。
内存对齐
和数据在内存中的位置有关。
内存对齐
以字节为单位进行,一个变量的内存地址如果正好等于它的长度的整数倍,则称为自然对齐。比如在32位 cpu 下,一个 u32 的内存地址为0x00000004 ,则属于自然对齐。内存空间按照字节进行划分,理论上可以从任意地址开始读取,实际上会要求读取数据的首地址是某一个值的整数倍。
谈谈关于
内存对齐
与补齐
本文很多转自: http://blog.csdn.net/cyousui/article/details/17655051 说明:转载的这篇文章是我看到的觉得解释的比较清楚的一篇文章,网上很多写关于
内存对齐
的文章,要么说不清楚,要么还有错误,误导别人!! 个人总结如下(我的理解,不一定正确,欢迎指正!): 1.32位机一般默认4字节对齐(32位机机器字长4字节),64位机一般默认8
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章