提问者:小点点

在C和C++中你怎么称呼“#”?


我只是很好奇,在C/C++中你把#叫做什么?

例如,#if。它叫“hashtag if”吗?


共2个答案

匿名用户

源代码中以#if开头的一行现在被称为预处理器指令。在《C编程语言》(K&R)1一书中,它被称为“编译器控制线”。

符号#本身似乎没有特殊的名称。例如,gcc编译器的文档将其称为“#”:

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

K&R的书也只是称之为“#”:

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

1丹尼斯-里奇、布莱恩-克南根;C程序设计语言,第一版(1978年);第207页

匿名用户

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

相关问题


MySQL Query : SELECT * FROM v9_ask_question WHERE 1=1 AND question regexp '(c|c++|中|称呼)' ORDER BY qid DESC LIMIT 20
MySQL Error : Got error 'repetition-operator operand invalid' from regexp
MySQL Errno : 1139
Message : Got error 'repetition-operator operand invalid' from regexp
Need Help?