gpt4 book ai didi

c++ - 在预处理器语句中使用 C 函数

转载 作者:太空宇宙 更新时间:2023-11-04 00:50:04 25 4
gpt4 key购买 nike

我正在 stm32f4 芯片上编写一个 C++ 应用程序,该芯片有多个 IO 需要控制。我的一位同事建议对所有这些 IO 进行预处理语句,以提高代码的可读性。

例如:

#define FAN_ON     GPIO_SetBits(GPIOD, GPIO_Pin_0);
#define FAN_OFF GPIO_ResetBits(GPIOD, GPIO_Pin_0);

这样可以吗,如果不行,为什么?我还没有那么多微 Controller 经验,但我读到分号不应该在预处理器语句中使用,我也不确定在预编译器语句中使用函数是否是一种好的风格?

感谢您的帮助!

最佳答案

理论上没问题,但您说得对,应该避免使用分号。

最好将代码包装在一个虚拟循环中:

#define FAN_ON    do { GPIO_SetBits(GPIOD, GPIO_Pin_0); } while(false)

这使得宏的行为就像一条语句。

关于c++ - 在预处理器语句中使用 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22174721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com