C++ 你叫什么#&引用;在C和C++;?

C++ 你叫什么#&引用;在C和C++;?,c++,c,c-preprocessor,C++,C,C Preprocessor,我只是好奇,你在C/C++中把#称为什么 例如,#if。它是否被称为“hashtag if”?源代码中以类似于#if开头的一行被称为A。在C编程语言(“K&R”)一书中,它被称为“编译器控制行” 符号#本身似乎没有特殊名称。例如,该函数称之为“#”: 预处理指令是程序中以 ‘#’. “#”前后允许有空格。“#”是 后跟标识符,即指令名称。它指定了 要执行的操作。指令通常被称为“名称” 其中name是指令名。例如,“定义”是 定义宏的指令 K&R的书也把它叫做#: 以#开头的行与此预处理器通信

我只是好奇,你在C/C++中把
#
称为什么


例如,
#if
。它是否被称为“hashtag if”?

源代码中以类似于
#if
开头的一行被称为A。在C编程语言(“K&R”)一书中,它被称为“编译器控制行”

符号
#
本身似乎没有特殊名称。例如,该函数称之为“#”:

预处理指令是程序中以 ‘#’. “#”前后允许有空格。“#”是 后跟标识符,即指令名称。它指定了 要执行的操作。指令通常被称为“名称” 其中name是指令名。例如,“定义”是 定义宏的指令

K&R的书也把它叫做#:

以#开头的行与此预处理器通信



丹尼斯·里奇、布赖恩·克尼汉;C程序设计语言,第1版(1978年);P207

C标准没有按名称引用
#
。在C 2018 6.4.6中,它被列为标点符号之一。它在C中有三种用途。在讨论它在预处理器指令中的用途时,标准称它为“处理令牌”(6.10)。在讨论其用于“串接”操作时,标准称其为“操作员”(6.10.3.2)。当然,它也可以用作字符常量(
“#”
)或字符串文本中的字符。

“#”称为预处理器指令,“#”之后的单词称为预处理器命令。预处理器是在编译之前执行的程序。每个预处理指令必须在其自己的行上。 范例-

#define MAX 50
#if CONDITION

在C或C++中没有专门的名称。根据互联网,这个符号通常被称为“Octothorpe、number、pound、sharp或hash”“pound”是我在C语言环境中听到的最常见的发音。例如#define->“Pound define”这一观点的依据到底是什么?在语言语法中有几个正式的和规范的名称。这个问题可以用事实和引证来回答。重新开放投票。“Pound”在美国,“hash”在许多其他地方(肯定是在英国),“hastag”从来不是“hastag”是一个非常新的术语,可以追溯到2007年左右。C和C++都比这要大得多(甚至C是更大的),还有一个运算符,这是符号在语言中的第二次使用。非正式的/俚语是“字符串化操作符”或类似的。两个
##
使
#
操作符成为“pp令牌连接”。