我正在研究两种不同的 LCD 初始化。一份来自教授的硬件,另一份是我的。我想使用宏定义在两个函数之间切换:
#ifndef LCD_Professor
void InitLCD (uint8_t N, uint8_t F, uint8_t D, uint8_t C, uint8_t B, uint8_t ID, uint8_t SH) {
...
}
#endif
#ifndef LCD_Group3
void InitLCD (uint8_t N, uint8_t F, uint8_t D, uint8_t C, uint8_t B, uint8_t ID, uint8_t SH) {
...
}
#endif
我希望如果我在文件开头使用#define LCD_Group3,我可以在这两个函数之间进行选择。事实是,我从未真正使用过这些宏。这应该有效吗?或者更确切地说,还有其他方法可以做到这一点吗?
谢谢!
最佳答案
应该是
#ifdef LCD_Professor
...
#endif
#ifdef LCD_Group3
...
#endif
不是#ifndef
来选择您要使用其中一个,那么您可以在包含之前执行#define LCD_Group3
或LCD_Professor
文件,以启用其中之一。
关于使用宏在两个函数定义之间进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456212/