sizeof数据对齐问题
2015-05-09 00:20
260 查看
#include <iostream> using namespace std; struct A1 { int a; static int b; }; struct A2 { int a; char c; }; struct A3 { float a; char c; }; struct A4 { float a; int b; char c; }; struct A5 { double d; float a; int b; char c; }; void main() { cout<<sizeof(A1)<<endl; cout<<sizeof(A2)<<endl; cout<<sizeof(A3)<<endl; cout<<sizeof(A4)<<endl; cout<<sizeof(A5)<<endl; }
分析如下:
A1:sizeof只计算栈中分配的大小,而b是静态变量,位于全局数据区,所以不占用栈的空间,所以A1的大小只是a占用的空间,即4;
A2:数据对齐,int大小为4;char大小为1,扩展为4,所以A2为8;
A3:数据对齐:float大小为4;char大小为1,扩展为4,所以A3为8;
A4:数据对齐:float大小为4;int大小为4;char大小为1,扩展为4,所以A3为12;
A5:数据对齐:double大小为8;float大小为4,int大小为4,float和int共占8;char大小为1,考虑对齐,扩展为8;所以A4为24;
转载自:http://blog.csdn.net/tangbo1987/article/details/6766918
相关文章推荐
- C++中数据对齐问题。struct、union、enum,类继承。再谈sizeof()
- sizeof数据对齐问题
- C_语法概念_sizeof()功能:计算数据空间的字节数以及字节对齐问题
- sizeof 数据对齐问题
- sizeof,union在32位系统中的对齐问题
- #pragma pack和数据对齐问题
- Linux kernel data types, alignment, compat_ioctl 数据类型,对齐问题和compat_ioctl
- sizeof()与内存对齐问题小探讨
- C语言中的数据对齐问题
- struct union数据对齐和sizeof大小
- C++基础系列:sizeof与字节对齐问题
- DSP C6000汇编,数据字节非对齐问题的处理
- 结构体数据对齐问题
- sizeof 和 strlen及字节对齐的问题
- 使用矢量面裁剪栅格数据的对齐问题
- 详细解剖C++运算符sizeof()的使用及字节对齐问题
- sizeof(struct)--关于字节对齐的问题
- 字节对齐、sizeof的问题分析
- (1.1.6)sizeof()用法汇总 and 数据对齐
- DBGridEh数据不能左对齐问题