字节对齐
来源:互联网 发布:魔豆精灵网络加速器 编辑:程序博客网 时间:2024/06/03 15:49
若char是1字节,int是4字节,指针类型是4字节,代码如下:
class CTest{ public: CTest():m_chData(‘\0’),m_nData(0) { } virtual void mem_fun(){} private: char m_chData; int m_nData; static char s_chData;};char CTest::s_chData=’\0’;
问:
(1)若按4字节对齐sizeof(CTest)的值是多少?
(2)若按1字节对齐sizeof(CTest)的值是多少?
解题思路:
1、先找有没有virtual函数,有的话就要建立虚函数表+4
2、static的成员变量属于类域,不算入对象中+0
3、神马成员都没有的类,或者只有成员函数+1(一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节)
答案:
(1)结果是12= 4(虚表指针)+1(char )+3(对齐补位)+4(int)
(2)结果是9 =4(虚表指针)+1(char )+4(int)
0 0
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- 字节对齐
- JQuery 的选择器可谓之强大无比
- 计算几何资料、
- javaScript中的异常
- iOS开发地图系列篇(一)
- 数据库基础语法--php基础最详细教程
- 字节对齐
- C++中的accumulate
- OpenCV 边缘检测
- 让你变懒的 Android Studio Live Templates
- 【2016年年中总结】——你变成了你喜欢的样子了吗?
- jdk6.0与7.0的区别
- 虚基态程序
- 基于windows的mysql读写分离和amoeba配置
- 完美解释安卓主题怎么定义,看这里!