1 c c++ microcontroller stm32 precompiler
我正在stm32f4芯片上编写一个c ++应用程序,它有几个要控制的IO.我的一位同事建议为所有这些IO制作预处理器语句,以使代码更具可读性.
例如:
#define FAN_ON GPIO_SetBits(GPIOD, GPIO_Pin_0);
#define FAN_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_0);
Run Code Online (Sandbox Code Playgroud)
这样就好了,如果没有,为什么?我还没有那么多的微控制器经验,但我读到在预处理器语句中不应该使用分号,我也不确定在预编译器语句中使用函数是否是一种好的风格?
谢谢您的帮助!
这在理论上很好,但你应该避免使用分号.
最好将代码包装在一个虚拟循环中:
#define FAN_ON do { GPIO_SetBits(GPIOD, GPIO_Pin_0); } while(false)
Run Code Online (Sandbox Code Playgroud)
这使得宏的行为类似于单个语句.