博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sizeof函数和对齐的问题
阅读量:4673 次
发布时间:2019-06-09

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

1.结构体对齐问题

32位机器

例子1:

结果:

 例子2:

struct A{
   char c1;
   int i;
   short s;
   int j;
}a;
struct B{
   int i;
   int j;  
   short s;
   char c1;
}b;
结构A没有遵守字节对齐原则(为了区分,我将它叫做对齐声明原则),结构B遵守了。我们来看看在x86上会出现什么结果。

先打印出a和b的各个成员的地址。会看到a中,各个成员间的间距是4个字节。b中,i和j,j和s都间距4个字节,但是s和c1间距2个字节。所以:

sizeof(a) = 16
sizeof(b) = 12

 

总结:关于结构体对齐,结构体中最长者与系统设定之间,选择较小者作为对齐参数,当然也可以修改对齐参数:

#pragma pack(4)

struct a 

{

};

#pragma pack()//恢复系统设置

 

2.sizeof类与sizeof对象的区别

 

转载于:https://www.cnblogs.com/wufengv5/p/3982159.html

你可能感兴趣的文章
186. [USACO Oct08] 牧场旅行
查看>>
一个屌丝程序猿的人生(三十九)
查看>>
Linux常用命令
查看>>
Spring之@Configuration配置解析
查看>>
Windows操作系统远程Linux服务器传输文件方法(以EasyDSS云平台、EasyNVR上传部署为例)...
查看>>
pip安装第三方库以及版本
查看>>
一、app更新提示后台接口开发-(2)数据库表设计
查看>>
利用data-src属性 更换图片
查看>>
Spring(3)
查看>>
SSM整合 mybatis多条件查询与分页
查看>>
VS2010中dumpbin工具的使用
查看>>
使用Golang搭建web服务
查看>>
HTML5触摸事件(touchstart、touchmove和touchend)
查看>>
架构师软技能之协商(上)
查看>>
商品翻牌效果(纯css)
查看>>
win10 UWP 序列化
查看>>
读书心得
查看>>
前端知识整理 CSS盒模型
查看>>
sendmail 常见报错总结
查看>>
asp.net Response.AddHeader的方法来下载
查看>>