【发布时间】:2012-05-31 15:40:36
【问题描述】:
我经常将const用于没有被修改的局部变量,像这样:
const float height = person.getHeight();
我认为它可以使编译的代码可能更快,允许编译器进行更多优化。还是我错了,编译器可以自己弄清楚局部变量永远不会被修改?
【问题讨论】:
-
我不会感到惊讶。
-
AFAIK const 不做任何优化,volatile 做
-
当值为编译时常量时,优化更实用。您可能感兴趣的更一般的讨论可以在这里找到:stackoverflow.com/questions/212237/…
-
@zadane,我很确定它确实开启了某些优化。但是,不要忘记过早优化是万恶之源。为了这个目的考虑这个是浪费时间。程序运行后,如果需要加快程序速度,请选择更好的算法或其他东西。
-
@chris: “过早的优化是万恶之源” 你所要做的就是添加一个常量。请向我解释这怎么可能是邪恶的。如果有的话,它将使代码更安全,这与邪恶完全相反。此外,整句话是“过早的优化是万恶之源。但我们不应该放弃那关键的 3% 的机会。”。来源:link
标签: c++ performance optimization constants compiler-optimization