請教各位大大一個有關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)的值,這樣才對吧?
請各位大大解惑,謝謝