请教一个关于从奇数地址取值出现的问题

2020-01-23 14:40发布

本帖最后由 justdomyself 于 2014-5-26 19:52 编辑

#define                        MEM_W(x)                        ((WORD) *((WORD  *)(x)) )

typedef struct
{
  WORD ID;                  // Message Identifier
  BYTE LEN;                 // Data length (0-8)
  BYTE RTR;
  BYTE BUF[8];              // Data buffer
} CAN_MSG;


CAN_MSG msg,*pmsg;
msg.BUF[0]=0X20;
msg.BUF[1]=0X05;
msg.BUF[2]=0X60;
msg.BUF[3]=0X00;

pmsg=&msg;


WORD   tmp=MEM_W(&pmsg->BUF[1]);

为何tmp的值是5 而不是0x6005

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。