为什么在C语言的标题中使用"#"符号?为什么不是任何其他符号?
Why is '#' symbol used in C language's header ? Why not any other symbol ?
我想知道为什么C语言的标头包含"#"符号作为起始符号,为什么不使用任何其他符号?这有什么原因吗?或者程序员只是随机选择的?
我猜需求是
- 可用于当时的常见字符集(ASCII、EBCDIC,也许还有其他字符集)
- 而不是由该语言使用的,因此预处理器可以很容易地识别其指令
- 易于在标准美国键盘上打字
符合这些要求的字符不多;CCD_ 1就是其中之一。选择它,而不是@
或$
,可能是任意的。
主要原因是#
在C语法的其他地方未使用。这使得它可以用于(然后单独的)预处理器。
相关文章:
- 首先按给定顺序打印所有数字,然后使用 Array 打印所有字符和其他符号
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 为什么C++让你把"->"符号放在指针上,把"."符号放在其他所有东西上?
- C++使用其他命名空间中的符号,而不使它们可从外部访问
- 未解决的外部符号 - 来自其他项目的静态函数
- 用调试符号编译需要其他库
- 未定义的建筑符号,尝试了i386和其他符号
- types.h中的内容——编译器在哪里定义int、带符号int和其他值的宽度
- 为什么在C语言的标题中使用"#"符号?为什么不是任何其他符号?
- 区分数字和其他符号 [c++]
- 警告 1 警告 C4244:"参数":从"time_t"转换为"无符号 int",可能会丢失数据以及其他错误
- 在其他方面等效的有符号和无符号类型的别名
- C ++中的构建错误,未定义的符号,在这里尝试了其他答案,无法弄清楚
- 计算字符串中的元音、辅音、数字和其他符号
- 将浮点数*或其他指针转换为无符号字符*
- 在使用boost Zlib时,未解析的外部符号inflateEnd(和其他)
- 在C/ c++或任何其他类似语言中,对变量或数据类型应用&符号时返回的地址类型
- 未找到 dyld 符号,但 nm 报告其他情况(OS X 更新问题)
- "LIBCMT"与其他库的使用冲突+未解析的外部符号