多行 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 预处理器指令的宏的主要内容,如果未能解决你的问题,请参考以下文章

C 中的预处理器指令:使用 __LINE__ 的宏

预处理指令

笔记3:预处理器-宏定义

C语言中带参数的宏

C语言基础:C 预处理器预定义宏预处理器运算符(字符串常量化运算符(#),标记粘贴运算符(##),defined 运算符)参数化的宏

Rust的宏可以像C预处理器宏一样扩展为十六进制数吗?