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]'。我编辑了我的答案以反映这一点。注意到! –