【发布时间】:2018-04-24 08:22:29
【问题描述】:
如果我定义一个宏接受参数如下。
#define define_int(a) int a;
并提供一个参数,其间有空格,如下所示
define_int(* a)
然后得到输出?
int * a;
预期用途
#define ASSIGN(A,B) B=A;
我想直接用这个宏作为函数返回
ASSIGN(A, return B)
这样它就会输出,
return B = A;
【问题讨论】:
-
define_int(sd, df)将 两个 参数传递给define_int。它需要一个。 -
问题不在于空格,而在于分隔宏参数的逗号。
-
该宏是一个示例,还是您打算使用的东西?因为在定义变量的语言中发明你自己的迷你语言,不会产生更好的代码。
-
你为什么喜欢做这样的事情?阅读
define_int(sd, df)而不是int sd, df;会让我感到困惑。 -
我在提供示例时没有意识到我使用的是逗号运算符,抱歉,更改示例请再看一下。 (我不打算按原样使用)
标签: c++ macros preprocessor