帅踢锅
2015-08-01 09:21
听了半天结构体的对齐方式,感觉还是没听懂。请问下面的例子是怎么计算出来的呀?
//st1类型占8字节
struct st1{
int a;
short b;
char c;
};
//st2类型的占12字节 调了st1数据成员的次序
struct st2{
char a;
int b;
short c;
};
//st3类型的占16字节 不论如何调序结果都是16字节
struct st3{
int a;
char b;
double c;
};
另外,听说GCC和标准C在对齐方面有所区别,请问又是怎么回事呢?
标准对此没有规定,完全由编译器自己实现。自己写代码时不要依赖这种“未指定”的行为。
想要知道你使用的编译器是怎样实现的,就用gdb打印出数据结构看一下吧。
st3占用的是16?我手动计算是12啊,请指教
Linux C语言结构体
118294 学习 · 162 问题
相似问题