C++中的#,##,和"
字符串化操作(#)
当用作字符串化操作时,#
的主要作用是将宏参数不经扩展地转换成字符串常量。
要点:
- 宏定义参数的左右两边的空格会被忽略,参数的各个Token之间的多个空格会被转换成一个空格。
- 宏定义参数中含有需要特殊含义字符如
"
或\
时,它们前面会自动被加上转义字符\
。
标记连接操作(##)
将多个Token连接成一个Token。
要点:
- 它不能是宏定义中的第一个或最后一个Token。
- 前后的空格可有可无。
当用作字符串化操作时,#
的主要作用是将宏参数不经扩展地转换成字符串常量。
要点:
"
或\
时,它们前面会自动被加上转义字符\
。将多个Token连接成一个Token。
要点: