如何制作多行预处理器宏?我知道怎么写一行:
#define sqr(X) (X*X)
但我需要这样的东西:
#define someMacro(X)
class X : public otherClass
{
int foo;
void doFoo();
};
我怎样才能让它工作?
这只是一个例子,真正的宏可能很长.
如何制作多行预处理器宏?我知道怎么写一行:
#define sqr(X) (X*X)
但我需要这样的东西:
#define someMacro(X)
class X : public otherClass
{
int foo;
void doFoo();
};
我怎样才能让它工作?
这只是一个例子,真正的宏可能很长.
使用\
作为换行符.
#define swap(a, b) { \
(a) ^= (b); \
(b) ^= (a); \
(a) ^= (b); \
}
编辑:正如@abelenky在 comments 中指出的,\
个字符的must be the last character on the line.如果不是(即使后面只是空白),在它后面的每一行上都会出现令人困惑的错误消息.