3、预处理的运算符
在定义宏时,还有一些运算符可以使用。包括:
- 宏延续运算符:\
- 字符串化运算符:#
- 标记粘贴运算符:##
一般一个宏写在一个单行上,如果宏太长,一个单行容纳不下,则可以使用宏延续运算符。
需要注意的是:宏延续运算符 \ 之后不能再有空格。
3.2、字符串化运算符在宏定义中,当需要把一个宏的参数转换为字符串常量时,则可以使用字符串化运算符 #。
字符串化运算符(stringify operator 或 stringizing operator),它会把宏调用时的实参转换为字符串。
3.3、标记粘贴运算符标记粘贴运算符(##)可以合并两个参数,即把宏定义中两个独立的标记被合并为一个标记,比如下面的例子,result_##n 展开后会变为 result_a 和result_b。