在嵌入式 C 中,我遇到了以下(以及更多类似的)示例:
#define GPIOA_AHB ((GPIOA_AHB_Type *) GPIOA_AHB_BASE)
GPIOA_AHB_BASE 是一个地址,它是之前定义的。这段代码究竟做了什么?我知道定义是预处理器的指令,因此它用定义中给出的值替换所有实例。例如,
#define GPIOA_AHB GPIOA_AHB_BASE
将用已定义的任何值 GPIOA_AHB_BASE 替换 GPIOA_AHB。我不明白在第一种情况下发生了什么......