“转义字符”的意义是什么&引用;用于多行C宏?

“转义字符”的意义是什么&引用;用于多行C宏?,c,macros,preprocessor,C,Macros,Preprocessor,我认为在C语言中,空格实际上并不重要。对于预处理器来说,这有什么不同吗?为什么在创建多行宏时需要使用“\”?预处理器指令以换行符结尾,因此在该上下文中,换行符与其他空格是不同的 在/注释和字符串文本中也可以区分换行符。在这两种情况下,行拼接都可以用来扩展词素,尽管这不是一种好的风格 同样,您可以使用多行注释扩展预处理器行,因为在识别预处理指令之前,注释将替换为空格。如果样式指南考虑到这一点,则可能也会不鼓励这样做。如果宏占用多行,则预处理器无法知道宏的结束位置(对于#define:它是一行代码,

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

预处理器指令以换行符结尾,因此在该上下文中,换行符与其他空格是不同的

/
注释和字符串文本中也可以区分换行符。在这两种情况下,行拼接都可以用来扩展词素,尽管这不是一种好的风格


同样,您可以使用多行注释扩展预处理器行,因为在识别预处理指令之前,注释将替换为空格。如果样式指南考虑到这一点,则可能也会不鼓励这样做。

如果宏占用多行,则预处理器无法知道宏的结束位置(对于
#define
:它是一行代码,没有
#end**
)。\显示在下一行继续。