首页 > 解决方案 > C ++“const”关键字有什么意义?

问题描述

使用关键字有什么意义const?例如,在制作游戏时,首先要做的事情之一就是设置它的宽度和高度。大多数时候你会使用例如:

const int Width

const int height

现在我知道你应该这样做,因为屏幕的宽度和高度在整个游戏过程中不会改变,但这样做有什么意义呢?你可以在不使用 const 的情况下做同样的事情,它会工作得很好。

那只是一个例子。所以我现在很困惑的是:

const如果您无论如何都不更改变量,那么在任何地方使用关键字有什么意义?

标签: c++constants

解决方案


非详尽的原因列表:

  1. 软件工程(SWE)。SWE 不仅仅是编程,而是随着时间的推移与其他人一起编程。

    const允许显式表达一个不变量,这让您和其他人可以对代码进行推理。随着程序变得越来越大,这些不变量不能仅仅记住。这就是为什么用编程语言对它们进行编码会有所帮助。

  2. 优化机会。

    在知道某些值不会改变的情况下,编译器可以进行原本不可能的优化。将其发挥到最大,constexpr意味着将在编译时知道一个值,而不仅仅是在运行时。这在潜在的多线程上下文中变得更加重要。

    示例: const 在 C/C++ 中提供什么样的优化?

    我省略了整个程序分析,这需要更长的答案,而且几乎可以肯定不适用于通用 C++ 程序。但是整个程序分析将允许分析器或编译器在变量在函数、翻译单元和库之间传递时推理变量的常量性。


推荐阅读