Linux+gcc下指定对齐方式

程序中可以指定变量在内存中的对齐方式,按照字节对齐、4字节对齐、8字节对齐等。使用如下命令对:

#pragma pack(push, 4)
#pragma pack(pop)


可以看看下面的程序会输出什么?

#include

#pragma pack(push, 4)

struct a
{
short v1;
int v2;
};

struct b
{
short v1;
short v2;
char c;
};

struct c
{
struct a v3;
struct b v4;
};

int main()
{
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(struct a));
printf("%d\n", sizeof(struct b));
printf("%d\n", sizeof(struct c));
}

#pragma pack(pop)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzyfzz.html