以下是「##」的含義?C++宏中「##」的含義是什麼?
#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; }
以下是「##」的含義?C++宏中「##」的含義是什麼?
#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
。使用##
,get
和funName
是單獨的標記,這意味着預編譯器可以替換funName
,然後連接結果。