读书人

结构体边界对齐请教小弟我这个想法

发布时间: 2012-10-27 10:42:26 作者: rapoo

结构体边界对齐——请问我这个想法对不对
看这么一句话:
“如果#pragma pack (n)中指定的n 大于结构体中最大成员的size,则其不起作用,结构体
仍然按照size 最大的成员进行对界。”
我很不理解“结构体按照...对界”这种说法。
它是想说——结构体的在内存的首地址会跟最大成员的size对齐。
还是想说——结构体内部的每个成员的存放地址都要跟最大成员的size对齐。

我猜是第一种:大家指点一下:)

[解决办法]
应该是每一个成员都跟它之前的最大的对齐吧?
而不是整个结构体里最大的那个吧。

C/C++ code
#include <stdio.h>int main(){    struct AA    {        char a;        char b;        int c;        int d;        };    struct BB    {        char a;        int c;        char b;        int d;        };    printf("\nchar:%d, int:%d, AA:%d, BB:%d", sizeof(char), sizeof(int), sizeof(struct AA), sizeof(struct BB));    getchar();    return 0;} 

读书人网 >C语言

热点推荐