多行 C 预处理器指令的宏

Posted

技术标签:

【中文标题】多行 C 预处理器指令的宏【英文标题】:Macro for a multi line C preprocessor directive 【发布时间】:2014-10-16 14:59:52 【问题描述】:

我正在尝试为以下代码创建简写。

#ifdef   TEST_DEF  
#define  MY_TEST_DEF TEST_DEF 
#else
#define  MY_TEST_DEF 120 
#endif

如何将上面的代码写成单行宏

SAFE_DEF(TEST_DEF,MY_TEST_DEF,120)

【问题讨论】:

【参考方案1】:

这是不可能的。每个新定义都必须在自己的行上定义,并且不能在自身中声明新定义。

您将使用 ifdef,else 方法。

【讨论】:

以上是关于多行 C 预处理器指令的宏的主要内容,如果未能解决你的问题,请参考以下文章