在函数式宏中替换列表里标识符前的#运算符会让该标识符先经过参数替换再被一对双引号包裹起来最终形成一个字符串字面量。此外预处理器会自动添加反斜杠来转义内部的双引号并将字符串中的反斜杠数量翻倍同时会移除字符串首尾的空白字符并将中间的连续空白字符非字符串字面量内部的合并为单个空格。这个过程被称为字符串化。示例#includestdio.h#defineSTR(x)#xintmain(){printf(%s\n,STR(hello));printf(%s\n,STR(hello world));printf(%s\n,STR(hello world));printf(%s\n,STR(helloHugo));return0;}运行结果