c c++ 宏定义中#, ##, #@的含义

#表示:对应变量字符串化,即加双引号  

连接符#@:它将单字符标记符变换为单字符,即加单引号

##表示:把宏参数名与宏定义代码序列中的标识符连接在一起,形成一个新的标识符

例如:

#define A(x)  #@x      //此处x仅限于单个字符

则A(m) 字面量表示 'm',     而A(abc),则无效

#define B(x)  #x

则B(m) 字面量表示 "m", B(abcd123)  字面量表示 "abcd123"

#define C(x)  Class##x

C(List) 字面量表示 ClassList

原文地址:https://www.cnblogs.com/endenvor/p/9774354.html