请教各位大大一个有关casting的问题
aData8 = *(volatile UINT8 *)(PCH_LPC_RCBA_BASE_ADDRESS + R_PCH_RCRB_BUC);
有一叙述如上:
假设(PCH_LPC.... + R_PCH_RCRB_BUC) = 0x80000000
volatile也暂时don't care
我的解读是
0x80000000 被casting成UINT8的address,然后再被取值
但如果先被casting成UINT8的话,不就变成0x00被取值
应该要写成 *(UINT32 *)(PCH.... + _BUC);
这样才会取到(PCH.... +_BUC)的值,这样才对吧?
请各位大大解惑,谢谢