#pragma pack 的作用

#include<stdio.h>

#pragma pack(2)

union u
{
    char buf[9];
    int i;
};

int main()
{
    printf("sizeof(u) :%u\n", sizeof(union u));
    return 0;
}

在Ubuntu 16.04.2 LTS编译运行的结果是

sizeof(u) :10

代码中#pragma pack(2)将对齐设置为2,所以int得对齐方式也变成了2,整个u的对齐也是2,所以此时sizeof(u)=10。

猜你喜欢

转载自blog.csdn.net/guoguangwu/article/details/88858216