LinuxSir.cn,穿越时空的Linuxsir!

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

问一个time_t的诡异问题

[复制链接]
发表于 2006-5-11 21:13:16 | 显示全部楼层 |阅读模式
OS是WINXP,是在Cygwin下面用gcc编译一段程序,程序里面有一个结构体:

struct section{
char s_ROID[15];
char s_ROType;
char s_ContentType;
time_t s_EndTime;
char s_Status;
};

我的是32位的机器,sizeof(time_t)结果是4,然后我用sizeof(struct section)打印这个结构体的大小,与我预想的大小22不同,结果居然是28...然后最诡异的是它居然还会随着我把 time_t s_EndTime这行的位置变化4个byte。

就是下面这个结构体的大小是24
struct section{
char s_ROID[15];
char s_ROType;
char s_ContentType;
char s_Status;
time_t s_EndTime;
};
发表于 2006-5-11 23:16:59 | 显示全部楼层
内存对齐问题
如果你需要确保你的结构体长度为22
最后一行就写成
} __atrribute__ ((packed));
回复 支持 反对

使用道具 举报

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

本版积分规则

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