LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1172|回复: 2

设置字节不对齐

[复制链接]
发表于 2007-7-28 22:39:53 | 显示全部楼层 |阅读模式
struct socket_ipv4{
        u_int32_t addr;
        u_int16_t port;
};
该结构体sizeof(struct socket_ipv4)=8,如何让sizeof(struct socket_ipv4)
由于该结构体中第一个结构单元是长整型4个字节,第二个结构单元是短整型两个字节,
所以结构体struct socket_ipv4要在4字节对齐,我现在想让它不对齐,不知道编译
的时候是否有设置不对齐编译的选项?
发表于 2007-7-29 00:26:11 | 显示全部楼层
[Code]
#pragma pack(n)
struct socket_ipv4{
u_int32_t addr;
u_int16_t port;
};
#pragma pack()
[/Code]
这里的n是你想要他对齐的字节数。
不过最好小心使用,一般犯不着这么扣内存的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-29 15:26:07 | 显示全部楼层
CODE:
struct socket_ipv4{
u_int32_t addr;
u_int16_t port;
}__attribute__ ((packed));

或者是你在编译的时候加上-fpack-struct 这个选项.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表