【问题标题】:Constant vs Unchanged Variable?常量与不变变量?
【发布时间】:2011-09-18 04:16:48
【问题描述】:

使用常量(不可更改)比不更改变量有什么好处吗?

【问题讨论】:

    标签: variables constants


    【解决方案1】:

    根据您的语言和编译器,常量在构建时可能会被内联和优化。变量可能会占用堆栈空间,即使它永远不会改变。

    【讨论】:

    • 啊,我想这是有道理的。感谢您澄清:)
    【解决方案2】:

    通过使值保持不变,编译器可以直接替换它。例如,如果您有 x / 2,编译器可以计算并使用该值,而不必发出代码来检索 x 的值,然后将其除以 2。

    此外,您不必担心意外更改值。例如,在类 C 语言中,您可能会意外键入 if (x = 2),而您的意思是 if (x == 2),如果它是一个变量,这将更改 x 的值。

    【讨论】:

      【解决方案3】:

      将来维护您的代码的任何人(包括您)在发现错误或添加功能时都不必四处查看常量在哪里(如果有的话)更改 - 他们会立即知道它不能改变。

      【讨论】:

        【解决方案4】:

        在某些程序语言中,将某些内容声明为常量将允许编译器进行原本不可能的优化。此外,将某些内容声明为常量可能是一种有用的方法,可以记录代码中的某些地方在值更改时可能会被破坏。

        不幸的是,一些编程语言有时会用声明为常量的东西做坏事。例如,在某些 .net 语言中,如果声明为只读的值类型通过可修改引用传递,编译器将不会拒绝允许这样的操作,而是复制并传递它。这种隐式复制会降低效率,并可能导致意外语义。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-15
          • 2017-04-20
          • 2022-11-25
          • 2011-05-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-18
          相关资源
          最近更新 更多