繁体   English   中英

有条件地定义C函数宏

[英]Conditionally defining C function macros

我想知道如何有条件地定义函数宏。 例如,假设我有一个名为SETBIT的函数宏。 我想定义我自己的版本,如果有人使用我的库不包含单独的头文件,其中已经定义了这样的宏函数。 其原因是不同编译器之间的可移植性。

所以,我知道我可以使用常量执行此操作,如下所示:

#ifndef X
#define X 10
#endif

我想用函数宏做类似的事情

#ifndef SETBIT
#define SETBIT(port,bit) ((port) |= (1 << (bit)))
#endif

但是,我不相信这会奏效。

但是,我不相信这会奏效。

是什么让你相信? 它会起作用(前提是你修正了错误 - 它应该读取#ifndef SET_BIT ,我猜)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM