当前位置: 首页 > 知识库问答 >
问题:

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

花稳
2023-03-14

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

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

共有2个答案

公子昂
2023-03-14

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

尚嘉勋
2023-03-14

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

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

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

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

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

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

 类似资料:
  • C++的这些宏怎么理解 下面代码出自:https://github.com/sharkdp/dbg-macro的dbg.h头文件中 我尝试用渐进的方式去理解,尝试如下代码去理解前两行宏 发现代码不可编译,故尝试问之

  • 软件是 VScode 我尝试使用shift+enter之类的都不行。 这个有 一个 比较详细的术语,或者视频,使用文档吗? (因为我不想换个语言或者编译器就还得重新提问,求告知 换成visual stdio就方 按什么键?

  • Java: 如果java以微弱优势击败了C和C#我不会感到惊讶,但速度快了20倍?! 文件的格式如下: 另外,我认为值得注意的是,java在NetBeans中运行时大约需要11秒(即使是在“运行”模式下,而不是在“调试”模式下)。 我也尝试编译为C++而不是C,但没有什么不同。 我对C和C#都使用VS2015。 Java: 好吧,我按照建议重新做了测试: 首先,我在C和C#中都使用了类/struc

  • 这么小的问题,出于性能原因,我一直在研究将我的C#代码的一部分移动到C。现在当我看着我的花车。εC#它的值不同于我的C值。 在C#中,微软描述的值为1.401298E-45。 在C中的值,如所述的cp首选项是1.19209e-07; 在这两种语言中,浮点/单数的最小可能值怎么可能不同? 如果我是正确的,二进制值在字节数方面应该相等,甚至可能是它们的二进制值。还是我看错了? 希望有人能帮助我,谢谢!

  • 本文向大家介绍C和C++的区别是什么?相关面试题,主要包含被问及C和C++的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 C是面向过程的语言,C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。 C中函数不能进行重载,C++函数可以重载 C++在C的基础上增添类,C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运

  • 本文向大家介绍c# SqlDataAdapter中的Fill是怎么实现的,包括了c# SqlDataAdapter中的Fill是怎么实现的的使用技巧和注意事项,需要的朋友参考一下 1. 讲故事 最近因为各方面原因换了一份工作,去了一家主营物联柜的公司,有意思的是物联柜上的终端是用 wpf 写的,代码也算是年久失修,感觉技术债还是蛮重的,前几天在调试一个bug的时候,看到了一段类似这样的代码: 是不