您的位置:首页 > 其它

关于结构体对齐的问题

2015-04-06 17:29 260 查看
#include <stdio.h>

#pragma pack(push)

//设置结构体对齐方式为1个字节,这里采用出栈入栈的方式

#pragma pack(1)

struct s1 {

    int i;

    double j;

    char c;    

};

#pragma pack(pop)

//设置成系统默认的对齐方式,具体是多少字节与你操作系统有关

//32位的是4字节对齐,64位的是8字节对齐

struct s2 {

    int i ;

    double j ;

    char c ;

};

int main()

{

    printf("size of s1 = %lu\n",sizeof(struct s1));//结果为13

    printf("size of s2 = %lu\n",sizeof(struct s2));//结果为24(64位操作系统)16(32位操作系统)

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: