我正在阅读一些关于指针和结构的东西,但我就是不明白:微控制器的头文件中有这个内容:
#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 只是一个类型定义的结构,带有一些用于设置和清除中断的寄存器。很明显,(2)以某种方式管理结构起始地址是 NVIC_BASE 地址。但是怎么做?
括号(NVIC_Type *)中这个结构之后的指针(*)是什么?