在数据结构中设置一个位

时间:2016-02-25 01:08:45

标签: c memory typedef

经过大量的观察后,我找不到与我的问题相关的其他帖子。

我的程序中有一个非常大的内存映射,我根据对象的偏移量将数据存储在内存中。

在偏移4262处,我有这个结构,总共1个字节:

typedef struct
{
    unsigned char KCE_OPTION:1;
    unsigned char REMOTE_SECURITY_OPTION:1;
    unsigned char REMOTE_SEC_SWITCH_STAT:1;
    unsigned char FUTURE:5;
}ElevRemoteCtrlData;

在我的主循环中,我检查内存中的这个位置是否改变了它的值。我特意看看是否:

oldVal->ElevRemoteCtrlData.REMOTE_SEC_SWITCH_STAT != newVal->ElevRemoteCtrlData.REMOTE_SEC_SWITCH_STAT

即使我将新值推入此偏移量,此条件也不会通过。我认为问题在于我看到的具体位不会改变?我要么将0x00或0x01发送到内存中的那个位置。 (只有MSB更改)

任何人都可以解释一下它是否与我的数据结构中的成员顺序有关。我无法理解谁得到了什么。

感谢您提供的任何帮助。

0 个答案:

没有答案