Sup*_*123 0 c c++ c-preprocessor
我只是好奇,你#在 C/C++ 中叫什么?
例如,#if。它被称为“hashtag if”吗?
源代码中以类似开头的一行现在#if称为预处理器指令。在The C Programming Language ("K&R") 1一书中,它被称为“编译器控制线”。
符号#本身似乎没有特殊名称。例如,gcc 编译器的文档只是将其称为“#”:
预处理指令是程序中以“#”开头的行。'#' 前后允许有空格。'#' 后跟一个标识符,即指令名称。它指定要执行的操作。指令通常称为“#name”,其中 name 是指令名称。例如,'#define' 是定义宏的指令。
在K&R的书也只是将其称为“#”:
以 # 开头的行与此预处理器通信。
1 丹尼斯·里奇、布赖恩·克尼汉;C 程序设计语言,第 1 版(1978 年);页。207
C 标准没有指名#。在 C 2018 6.4.6 中,它被列为标点符号之一。它在 C 中具有三种用途。在讨论其在预处理器指令中的使用时,标准将其称为 \xe2\x80\x9c#处理标记\xe2\x80\x9d (6.10)。在讨论 \xe2\x80\x9cstringizing\xe2\x80\x9d 操作的使用时,标准将其称为 \xe2\x80\x9c# 运算符\xe2\x80\x9d (6.10.3.2)。当然,它可以用作字符常量 ( '#') 或字符串文字中的字符。