The charizing operator can be used only with arguments of macros. If #@ precedes a formal parameter in the definition of the macro, the actual argument is enclosed in single quotation marks and treated as a character when the macro is expanded. For example:
#define makechar(x) #@x
causes the statement
a = makechar(b);
to be expanded to
a = 'b';
The single-quotation character cannot be used with the charizing operator.
这是MSDN上关于这个的说明。
这是字符化操作符。只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。作用,将传的单字符参数名转换成字符,以一对单引用括起来。
通俗点说就是:
#define A(x) #@x 中的#@是使x变为字符'x'