【问题标题】:Using "#define" symbolic constants in ANSI C [duplicate]在 ANSI C 中使用“#define”符号常量 [重复]
【发布时间】:2013-10-23 12:04:47
【问题描述】:

在通过 K&R 的 C 编程语言遇到符号常量后,我看不到它们的用法/重要性。我宁愿使用一个“真正的”常量,比如一个整数,而不是使用#define 语句。我明白你为什么要使用 say...

#define PI 3.14

而不是仅仅在你的程序中输入“3.14”但是你为什么要使用#define 语句如果 我可以用...

static const double PI = 3.14;

是今天使用的符号常量还是只是“过去”更有用的语言的一个特性?

你建议我应该为常量使用什么?

【问题讨论】:

  • 这与您的previous question 有何不同?
  • 另一个更好的选择typedef const int PI = 3.14
  • @devnull 我的另一个问题与这个完全不同......

标签: c


【解决方案1】:

#define 是旧的,只是由预处理器处理的文本替换。例如,当您执行 #define PI 3.14 时,预处理器只需将所有出现的 PI 替换为数字文字 3.14

const 较新,并且依赖于编译器。它可以在编译时或运行时进行评估。它还提供范围。

我个人使用#define,因为它是在编译时被评估的保证,它还有其他灵活的用途。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2014-11-07
    • 1970-01-01
    • 2021-07-22
    • 2016-04-30
    • 1970-01-01
    相关资源
    最近更新 更多