我的程序中有一个非常大的内存映射,我根据对象的偏移量将数据存储在内存中。
在偏移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更改)
任何人都可以解释一下它是否与我的数据结构中的成员顺序有关。我无法理解谁得到了什么。
感谢您提供的任何帮助。