我想知道如何有条件地定义函数宏。例如,假设我有一个名为SETBIT
. 如果有人使用我的库不包含一个单独的头文件,其中已经定义了这样的宏函数,我想定义我自己的版本。原因是不同编译器之间的可移植性。
所以,我知道我可以用常量来做到这一点,如下所示:
#ifndef X
#define X 10
#endif
我想用函数宏做类似的事情
#ifndef SETBIT
#define SETBIT(port,bit) ((port) |= (1 << (bit)))
#endif
但是,我不相信这会奏效。