博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
64位与32位linux c开发时默认字节对齐值
阅读量:4165 次
发布时间:2019-05-26

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

1、64位机器sizeof的值为16

struct A{

char a;

int b;

int c;

}

2、32位机器sizeof的值为12

3、空间换时间

如果在编程的时候要考虑节约空间的话,那么我们只需要假定结构的首地址是0,然后各个变量按照上面的原则进行排列即可,基本的原则就是把结构中的变量按照类型大小从小到大声明,尽量减少中间的填补空间.还有一种就是为了以空间换取时间的效率,我们显示的进行填补空间进行对齐,比如:有一种使用空间换时间做法是显式的插入reserved成员:

             struct A{
               char a;
               char reserved[3];//使用空间换时间 char reserved[7]
               int b;

               int c;

}
reserved成员对我们的程序没有什么意义,它只是起到填补空间以达到字节对齐的目的,当然即使不加这个成员通常编译器也会给我们自动填补对齐,我们自己加上它只是起到显式的提醒作用.

转载地址:http://pwexi.baihongyu.com/

你可能感兴趣的文章
2018.4.32
查看>>
2018.4.33
查看>>
《python基础教程》答案(第一章)
查看>>
2018.4.34
查看>>
2018.4.35
查看>>
2018.4.36
查看>>
我为什么要写博客
查看>>
如何导入pycharm无法导入的包
查看>>
2018.4.37
查看>>
2018.4.38
查看>>
2018.4.39
查看>>
2018.4.40
查看>>
2018.5.27
查看>>
2018.5.51
查看>>
2018.5.52
查看>>
《python基础教程》答案(第四章)
查看>>
2018.5.53
查看>>
2018.5.54
查看>>
2018.5.55
查看>>
2018.5.58
查看>>