西药大全:测试一下GCC字节对齐的效果
来源:百度文库 编辑:九乡新闻网 时间:2024/05/01 00:27:54
有以下结构体,在不强制按1字节对齐的情况下,sizeof他们的大小会是多少?
struct TEST1
{
int a;
short b;
char c;
);
sizeof(struct TEST1)=8 //总字节数是7,按四字节对齐,结果应该是8
struct TEST2
{
char a;
int b;
short c;
};
sizeof(struct TEST2)=12 //这里就很奇怪了,为什么是12呢?照我的理解,结构体的大小应该是在总长度的基础上按四字节对齐。
以上的例子说明了,结构体中的字节对齐,如果成员的大小大于等于4字节,则以4字节对齐,然后再排列下一个成员。如果两个成员的大小加起来大于四字节,则这两个相邻成员仍分别按照四字节对齐。仅当两个相邻成员的总大小在四字节内的时候,才会一起按照四字节对齐。
struct TEST1
{
int a;
short b;
char c;
);
sizeof(struct TEST1)=8 //总字节数是7,按四字节对齐,结果应该是8
struct TEST2
{
char a;
int b;
short c;
};
sizeof(struct TEST2)=12 //这里就很奇怪了,为什么是12呢?照我的理解,结构体的大小应该是在总长度的基础上按四字节对齐。
以上的例子说明了,结构体中的字节对齐,如果成员的大小大于等于4字节,则以4字节对齐,然后再排列下一个成员。如果两个成员的大小加起来大于四字节,则这两个相邻成员仍分别按照四字节对齐。仅当两个相邻成员的总大小在四字节内的时候,才会一起按照四字节对齐。
测试一下GCC字节对齐的效果
字节对齐
字节对齐详解
C语言中一个字节对齐问题的分析
结构体字节对齐问题!!!
c++ 结构体字节对齐
C struct 中字节对齐问题
C/C+语言struct深层探索(包括字节对齐)
字节对齐,以及为什么要对齐?,C++技术文章,C++系列教程,C++
测试一下你的人生
测试一下你的智力
GCC的扩展语法
来测试一下自己业障的轻重
测试一下你的人生 (娱乐)
测试一下你的理财观
测试一下你的记忆力如何?
测试一下你的记忆力如何
测试一下你的性魅力!
测试一下你的健康程度
测试一下您的服务精神
图片与文字的对齐
测试一下你的心理年龄吧(很准哦)
有意思的小测试,来测一下准不准吧!
[转载]来测试一下自己业障的轻重!