文档章节

c/c++中的字节对齐

 流云的博客
发布于 2015/04/06 16:55
字数 325
阅读 298
收藏 12

    参加了很多面试,遇到字节对齐的问题不是1次2次,但一直没有彻底弄明白是什么意思,清明节刚好闲下来,彻底研究了一下,得到下面的结论,希望对以后的面试和工作有作用:

第一种结论:

  1. 首先提出几个概念

    ①基本类型:像int,char,float,double之类的基本类型

    ②复合类型:结构体,类,联合体之类的类型,由基本类型构成

    ③数据类型的宽度: 用sizeof (type)计算出来的宽度,一般int为4 Bytes,char为1 Byte。。。

    ④有效对齐模数N: 编译器默认对齐模数为M,M可以用#pragma pack(n) 自己指定,数据类型的宽度为W=sizeof(type), 则N=min(M,W)

  2. 数组的有效对齐模数的计算

    找到结构体中最宽类型的有效对齐模数N,则结构体的有效对齐模数为N,结构体的大小为N的整数倍,而且结构体的起始地址是%N=0。

第二种结论:

        ① 首先不计算基本类型的对齐模数,首先找到最宽类型的宽度W;

        ② 结构题的有效对齐模数为 N=min(默认的对齐模数,W)   


© 著作权归作者所有

粉丝 2
博文 40
码字总数 18974
作品 0
武汉
私信 提问
C语言编程学习之意向不到的内存对齐问题

C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到...

小辰带你看世界
2018/05/14
0
0
细说 #pragma pack(n)

在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变 量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结...

vazor
2012/10/02
82
0
sizeof(空类或空结构体)

某童靴前天去理想国际某公司面试,回来在宿舍讨论了这样一道题: VC++里,有一个空类,没有声明任何成员变量或函数,请问此空类占多大字节空间? A、 0 B、 1 C、 4 D、8 当时考虑了32bit和6...

长平狐
2013/01/06
70
1
iOS底层原理--OC对象的本质

哇哦~距离上次更新笔记已是long long age 唔~ 为了颜值与技术在线,坚持写笔记,坚持瘦回两位数(emm…貌似暴露了什么) 1、NSObject的本质是什么? 分析: OC代码的底层实现实质是C/C++代码...

谦谦君子修罗刀
03/21
0
0
OC对象的本质(一) ——OC对象的底层实现

一个NSObject对象占用多少内存? Objective-C的本质 平时我们编写的OC代码,底层实现都是C/C++代码 Objective-C --> C/C++ --> 汇编语言 --> 机器码 所以Objective-C的面向对象都是基于C/C++...

MotoKnight
03/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c++运算符重载

这个运算符重载觉得有点像java的装箱 #ifndef INTERGER_H #define INTERGER_H //学习下运算符的重载 class Interger { public: Interger(); Interger(int value):m_value(value){}......

南桥北木
28分钟前
4
0
微信公众号如何推送文章

公众号推送消息格式,可以推送文本、图文消息、小程序、优惠券、会员卡、图片、视频、语音,不仅仅只能推送文章即图文消息,支持素材永久链接,表情符号等。 通过公众号接口可以开发各种各样...

保持美好
29分钟前
4
0
云桌面经常被吐槽,为什么还有很多人在用

说起云桌面我们会发现一个很奇怪的现象,那就是我们在网上经常能看到有人在吐槽云桌面的,说云桌面的性能差、价格贵和各种的不好用。虽然说网上有很多人都在吐槽云桌面,但是我们会发现使用它...

GZASD
35分钟前
5
0
支付宝20积分兑换15天会员

支付宝20积分兑换30天会员 活动地址:https://openact.ximalaya.com/alipay-vip/#/(或支付宝扫码打开)

xiaogg
39分钟前
6
0
DDoS攻击是怎么打垮游戏企业的?

1.占用服务器的有限资源。比如TCP连接数资源(服务器的连接数是有限制的),有的TCP连接会断开,有的会保持通信;比如一家餐馆,攻击者打比方是地痞流氓总是去排队,但是并不去消费,那么此时正...

云漫网络Ruan
40分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部