【问题标题】:Rationale for #define over #def and for #undef over #undefine [closed]#define over #def 和 #undef over #undefine 的基本原理 [关闭]
【发布时间】:2021-12-30 15:14:59
【问题描述】:

有谁知道(或猜到)以下原因:

  • #define 超过 #def
  • #undef 超过 #undefine

原因:

  • 预期:对称性:#define#def,以及 #undefine#undef => 容易记住
  • 实际:没有对称性:#define#undef => 不容易记住

【问题讨论】:

  • 这些只是原始语言设计者的任意选择,符合他们的个人审美。您可以像“为什么是 int 而不是 integer?”一样简单?
  • 为什么是unsigned 而不是uns
  • 要记住的一点是,在 1970 年代,内存和磁盘空间并不便宜。因此语言设计者不得不在可读性和简洁性之间做出妥协。
  • 这就是为什么mvcp 而不是move(或rename)和copy
  • @Barmar,不要忘记 dd 保留“复制和转换”。

标签: c c-preprocessor naming


【解决方案1】:

不容易记

非常简单 - 只需两个关键字。

有谁知道(或猜到)以下原因:

我相信这背后没有任何理由(除了许多懒惰#undefine 9 字符长)- 最好的人是 Alan Snyder,他将预处理器引入了 C 语言。但可能他对这个问题没有合乎逻辑的答案。

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    • 2015-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多