2

const现代 C++ 编译器在执行优化时是否考虑过?

4

1 回答 1

3

如果将对象标记为const,编译器可以推断出它永远不会被修改(尽管它可能具有可变成员),并且实际对象的值可以在很多地方内联。

知道这一点后,如果您有类似if语句或循环条件之类的内容来读取此类对象,并且生成的布尔表达式始终为真或始终为假,则编译器因此可以消除它知道无法到达的任何代码分支。

const不过,总体而言,当与关键字的实际用例(代码清晰度/安全性)相邻时,优化似乎可以忽略不计。

您可能还想看看这篇文章,因为他似乎更详细地总结了可能的优化:)

于 2013-10-30T07:55:30.620 回答