LinuxSir.cn,穿越时空的Linuxsir!

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

郁闷的对齐问题

[复制链接]
发表于 2006-11-16 13:45:26 | 显示全部楼层 |阅读模式
有这样一个static的struct
static struct {
UINT16 SvcFlag:1;
UINT16 EmcOnly:1;
UINT16 MsOutOfDomain:1;
UINT16 RegisteredFlag:1;
UINT16 RegStatus:4;
UINT16 Active:1;
UINT16 SdStatus:1;
UINT16 Pad:6;
} Status;
还有这样一些的定义:
#define REG_STATUS reg_status
BYTE reg_status;
#define reg_status (global_variable_base->reg_status)
然后在执行到这样的code时候,出错了
if (Status.RegStatus!= REG_STATUS)
如果把上面的code改为这样,就不会出错
BYTE temp;
temp=REG_STATUS;
if (Status.RegStatus != temp)

环境是linux+GCC
难道global_variable_base这个结构的对齐问题?

请教各位大侠,这是为什么?
发表于 2006-11-16 21:55:10 | 显示全部楼层
你能不能把你的代码全帖出来?如果是对齐的问题的话和你出错的程序的上下文都有关系的,这样看不出来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-17 15:38:12 | 显示全部楼层
代码太多了,global_variable_base这是一个很大的结构.
回复 支持 反对

使用道具 举报

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

本版积分规则

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