使用宏在两个函数定义之间进行更改

标签 c function macros initialization lcd

我正在研究两种不同的 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_Group3LCD_Professor文件,以启用其中之一。

关于使用宏在两个函数定义之间进行更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17456212/

相关文章:

c - 结构输出不同

javascript - 使用可变参数过滤事物

python - 我可以使用 map 将参数元组(或列表)插入到函数中吗?

function - 旧考试中 Haskell 函数的解释

methods - 如何检索 Julia 宏的方法?

c - 找出可以形成的正方形数

计算c中字符串中的空格数

C 程序 : How to properly use lseek() or fseek() to modify a certain part of a file?

emacs - 在 Emacs 中显示封闭的 #ifdef block

c++ - 新的 __LINE__ 什么时候开始?