(C/ c++)如何创建一个接受自增操作符的宏

(C/C++) how to create a macro that accepts the increment operator

本文关键字:操作符 一个 c++ 何创建 创建      更新时间:2023-10-16

为了使我的问题精确,我想创建一个宏,接受变量++并将其与另一个变量粘贴。在代码:

#define MYMACRO(A, OP) /* .... */

然后如果我在源文件中写入

MYMACRO(this->var, ++)

预处理器应该粘贴代码

this->var++;

当我试图将宏定义为a# #OP时,它提供了以下错误:

粘贴"++"answers"var"没有给出有效的预处理令牌

有可能做我正在尝试的事情吗?

提前感谢您的回答

您不需要##令牌粘贴操作符,因为您没有尝试将这些参数组合成单个令牌。只使用:

#define MYMACRO(a, op) (a)op;

您只需要像这样组合这些标记:

#define MYMACRO(a, incrdecr) (a)incrdecr