计算类的大小--字节对齐
来源:互联网 发布:中国电信网络重构原则 编辑:程序博客网 时间:2024/05/17 23:00
class A{ int a; short b; int c; char d;};class B{ double a; short b; int c; char d;};
在32位机器上用gcc编译以上代码,求sizeof(A),sizeof(B)分别是多少。
正确答案: C 你的答案: C (正确)
12 16
12 12
16 24
16 20
- 添加笔记
- 收藏
- 纠错
C
根据以下条件进行计算:
1、 结构体的大小等于结构体内最大成员大小的整数倍
2、 结构体内的成员的首地址相对于结构体首地址的偏移量是其类型大小的整数倍,比如说double型成员相对于结构体的首地址的地址偏移量应该是8的倍数。
3、 为了满足规则1和2编译器会在结构体成员之后进行字节填充!
A中,a占4个字节,b本应占2个字节,但由于c占4个字节,为了满足条件2,b多占用2个字节,为了满足条件1,d占用4个字节,一共16个字节。
B中,a占8个字节,b占2个字节,但由于c占4个字节,为了满足条件2,b多占用2个字节,
即abc共占用8+4+4=16个字节,
为了满足条件1,d将占用8个字节,一共24个字节。
0 0
- 计算类的大小--字节对齐
- 字节对齐的计算
- 计算结构体大小(字节对齐)
- 结构体存储空间大小计算&字节对齐
- 类字节大小,字节对齐相关
- 结构体大小的计算及设置内存字节对齐数原理理解
- 判断自己计算机的字节对齐大小
- C的大小端和字节对齐
- C++字节对齐与结构体大小计算
- sizeof计算结构体大小(字节对齐)
- C++字节对齐与结构体大小计算
- 求解字节大小,字节对齐
- 字节对齐导致的地址计算错误
- C++类大小的计算(对齐,继承)
- 结构体大小的计算,对齐
- 计算结构体的大小(对齐)
- 关于大小端序和字节对齐的总结
- 字节对齐和结构体的大小运算
- Leetcode 234. Palindrome Linked List (Easy) (cpp)
- Integer to English Words
- 关于解决git冲突
- jQuery学习<一> — — 安装
- KMP模板
- 计算类的大小--字节对齐
- 可访问性不一致: 属性类型“ ”比属性“ ”的可访问性低
- GeekBand第十周笔记
- HDOJ 1713 相遇周期
- jquery实现的Ajax局部刷新
- 读书笔记2016年7月17日
- linux代码调试
- spring aop的几种配置方式:
- 将会改变未来IT世界的十种编程语言