const
现代 C++ 编译器在执行优化时是否考虑过?
问问题
114 次
1 回答
3
如果将对象标记为const
,编译器可以推断出它永远不会被修改(尽管它可能具有可变成员),并且实际对象的值可以在很多地方内联。
知道这一点后,如果您有类似if
语句或循环条件之类的内容来读取此类对象,并且生成的布尔表达式始终为真或始终为假,则编译器因此可以消除它知道无法到达的任何代码分支。
const
不过,总体而言,当与关键字的实际用例(代码清晰度/安全性)相邻时,优化似乎可以忽略不计。
您可能还想看看这篇文章,因为他似乎更详细地总结了可能的优化:)
于 2013-10-30T07:55:30.620 回答