多行 C 宏中使用的转义符“\”有何意义?

What is the significance of the escape character " \ " used in multiline C macros?

我认为空格在 C 中实际上无关紧要。这对于预处理器来说有什么不同吗?为什么我们在创建多行宏时需要使用“\”?

预处理器指令以换行符终止,因此在该上下文中换行符与其他白色字符区分开来space。

换行符在 // 注释和字符串文字中也是有区别的。在这两种情况下,line-splicing 都可以用来扩展词素,尽管它被认为不是好的风格。

同样,您可以使用多行注释扩展预处理程序行,因为在识别预处理指令之前,注释会被替换为 space。如果他们想到它,样式指南可能也会劝阻。