3
我正在讀關於指針和結構的一些東西,但我只是不明白: 有一個在微控制器的headerfile此內容:C與微控制器:結構的起始地址是一個特定的地址?
#define NVIC_BASE (SCS_BASE + 0x0100) /*< NVIC Base Address */ (1)
#define NVIC ((NVIC_Type *) NVIC_BASE) /*< NVIC configuration struct */ (2)
在後面的代碼中,有可能是這樣的:
NVIC->ICER[0] = (1<<4);
請問這(因爲確定)符合下列條件:
(NVIC_Type *) NVIC_BASE).ICER[0] = (1<<4);
NVIC_Type只是一個typedef用一些寄存器來設置和清除中斷。很明顯,(2)以某種方式管理結構起始地址是NVIC_BASE地址。 但是如何?
括號(NVIC_Type *)中的結構後面的指針(*)是什麼?
不應認爲是'((NVIC_Type *)NVIC_BASE) - > ICER [0] =(1 << 4);'?有一個額外的'('和' - >'而不是''' –
我的頭轉置爲'(*(NVIC_Type *)NVIC_BASE).ICER [0]'。我編輯了我的答案以反映這一點。注意到! –