union和struct类型大小的跨平台讨论
2015-03-21 15:27
323 查看
这个问题的教材网上很多,我就不多说了这里给出一个:点击打开链接
这个问题又最容易引起争执,为什么呢?与平台或者说与编译器有关系,先看看下面的代码:
(1)Ubuntu系统下,G++编译的结果如下:
(2)Windows系统下,Cmake编译的结果如下:
具体不是很清楚,可能是Ubuntu做了一些优化,欢迎讨论
这个问题又最容易引起争执,为什么呢?与平台或者说与编译器有关系,先看看下面的代码:
#include <iostream> using namespace std; union U1 { char a[9]; int b; }; union U2 { U1 a; double b; }; union U3 { char a[10]; double b; }; struct S1 { char a[13]; double c; }; struct S2 { S1 a; U1 b; }; struct S3 { char b; int c; char d[13]; }; int main() { cout << "U1: " << sizeof(U1)<< endl; cout << "U2: " << sizeof(U2)<< endl; cout << "U3: " << sizeof(U3)<< endl; cout << "S1: " << sizeof(S1)<< endl; cout << "S2: " << sizeof(S2)<< endl; cout << "S3: " << sizeof(S3)<< endl; return 0; }我用了两种方法测试,测试结果如下:
(1)Ubuntu系统下,G++编译的结果如下:
(2)Windows系统下,Cmake编译的结果如下:
具体不是很清楚,可能是Ubuntu做了一些优化,欢迎讨论
相关文章推荐
- union和struct类型的大小计算
- union和struct类型的大小计算
- union和struct类型的大小计算
- union和struct类型的大小计算
- 关于 Union,Struct and Class的大小计算问题的思考(转)&union和struct类型的大小计算(转)
- union和struct类型大小的计算
- c中union和struct类型的大小计算
- 大小端区别、Union和Struct的内存大小
- union, struct, enum 的 大小区别
- struct和union的大小问题
- 结构struct 联合Union和枚举Enum的细节讨论
- union, struct, enum 的 大小区别
- 第六讲:c/c++复合数据类型struct以及联合类型union,动态内存申请malloc和calloc
- 关于union联合体类型的讨论(转)
- sizeof(struct )大小讨论
- c语言学习笔记(4)struct和union:柔性数组存储斐波那契数列以及union判断系统大小端
- sizeof(struct )大小讨论
- union/struct 位对齐算大小
- sizeof(struct )大小讨论
- 关于Union类型的讨论