博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础 - #pragma pack (n) 设置对齐方式
阅读量:6527 次
发布时间:2019-06-24

本文共 941 字,大约阅读时间需要 3 分钟。

1 // pragma_pack.cpp : 定义控制台应用程序的入口点。 2 // 3  4 #include "stdafx.h" 5 #include 
6 #include
7 8 using namespace std; 9 10 11 12 /*13 这是给编译器用的参数设置,有关结构体字节对齐方式设置, #pragma pack是指定数据在内存中的对齐方式。14 15 #pragma pack (n) //C编译器将按照n个字节对齐。16 #pragma pack () //取消自定义字节对齐方式。17 18 19 #pragma pack (push,1) //把原来对齐方式设置压栈,20 //并设新的对齐方式设置为一个字节对齐21 22 #pragma pack(pop) //恢复对齐状态23 24 因此可见,加入push和pop可以使对齐恢复到原来状态,而不是编译器默认,可以说后者更优,但是很多时候两者差别不大25 26 如:27 28 #pragma pack(push) //保存对齐状态29 30 #pragma pack(4)//设定为4字节对齐31 32 相当于 #pragma pack (push,4)33 */34 35 //#pragma pack(1)36 //调整结构体的边界对齐,让其以一个字节对齐37 38 #pragma pack(push,1)39 40 41 typedef struct _A_42 {43 char a;44 double b;45 }A;46 47 //#pragma pack()48 49 #pragma pack(pop) 50 51 52 53 int main()54 {55 cout << sizeof(A) << endl;56 57 return 0;58 }

对齐时:

 

屏蔽代码时:

 

转载于:https://www.cnblogs.com/1228073191Blog/p/7452276.html

你可能感兴趣的文章
WTL介绍
查看>>
应用程序框架实战三十四:数据传输对象(DTO)介绍及各类型实体比较(转)
查看>>
放量滞涨,抛出信号
查看>>
linux主机下的Vmware Workstation配置NAT设置 端口映射-Ubuntu为例
查看>>
unity physics joint
查看>>
TD的访问地址
查看>>
一张图看懂normal,static,sealed,abstract 的 区别
查看>>
Task的使用
查看>>
s:iterator巧妙控制跳出循环
查看>>
Serv-U 的升级及数据备份和迁移【转】
查看>>
webstorm无法显示左边文件夹目录的解决方法
查看>>
数字校园-云资源平台 2014.10.26-人人通共享空间
查看>>
为你的网站加上SSL,可以使用HTTPS进行访问
查看>>
软件project--谈项目开发
查看>>
在Android中创建文件
查看>>
爬虫基础
查看>>
JS组件系列——再推荐一款好用的bootstrap-select组件,亲测还不错
查看>>
getopt--parse command line options
查看>>
闭包和OC的block的本质
查看>>
MySQL出现Waiting for table metadata lock的场景浅析
查看>>