下面的“##”是什么意思?
#define CC_SYNTHESIZE(varType, varName, funName)\
protected: varType varName;\
public: inline varType get##funName(void) const { return varName; }\
public: inline void set##funName(varType var){ varName = var; }
下面的“##”是什么意思?
#define CC_SYNTHESIZE(varType, varName, funName)\
protected: varType varName;\
public: inline varType get##funName(void) const { return varName; }\
public: inline void set##funName(varType var){ varName = var; }
运算符 ## 连接两个参数,它们之间没有空格:例如
#define glue(a,b) a ## b
glue(c,out) << "test";
这也将被翻译成:
cout << "test";
它连接标记而不在它们之间留下空格。基本上,如果你没有##
public: inline varType getfunName(void) const { return varName; }\
预编译器不会funName
用参数值替换。With ##
, get
andfunName
是单独的标记,这意味着预编译器可以替换funName
然后连接结果。