这个GNU C,C++宏的扩展是什么
What is the expansion of this GNU C,C++ macro
这些 C 宏扩展到什么?
#define PERIPH_BASE ((uint32_t)0x40000000)
#define AHB2PERIPH_BASE (PERIPH_BASE + 0x08000000)
#define GPIOA_BASE (AHB2PERIPH_BASE + 0x0000)
#define GPIOB_BASE (AHB2PERIPH_BASE + 0x0400)
#define BLINK_GPIOx(_N) (GPIO_TypeDef *)(GPIO_BASE +(GPIOB_BASE-GPIOA_BASE)*(_N)))
#define BLINK_PORT_NUMBER(4)
对此的调用是
GPIO_SetBits(BLINK_GPIOx(BLINK_PORT_NUMBER), BLINK_PIN_MASK(8));
使用 gcc
编译器的 -E
选项查看预处理器输出。
示例:gcc -E program.c -o preprocessOutput.p
然后查看文件内容preprocessOutput.p
这些 C 宏扩展到什么?
#define PERIPH_BASE ((uint32_t)0x40000000)
#define AHB2PERIPH_BASE (PERIPH_BASE + 0x08000000)
#define GPIOA_BASE (AHB2PERIPH_BASE + 0x0000)
#define GPIOB_BASE (AHB2PERIPH_BASE + 0x0400)
#define BLINK_GPIOx(_N) (GPIO_TypeDef *)(GPIO_BASE +(GPIOB_BASE-GPIOA_BASE)*(_N)))
#define BLINK_PORT_NUMBER(4)
对此的调用是
GPIO_SetBits(BLINK_GPIOx(BLINK_PORT_NUMBER), BLINK_PIN_MASK(8));
使用 gcc
编译器的 -E
选项查看预处理器输出。
示例:gcc -E program.c -o preprocessOutput.p
然后查看文件内容preprocessOutput.p