Pie*_*ter 7 c++ performance const
一位朋友告诉我,这样做效率更高
int addNumbers(const int number1, const int number2);
Run Code Online (Sandbox Code Playgroud)
比
int addNumbers(int number1, int number2);
Run Code Online (Sandbox Code Playgroud)
当然假设number1并且number2不会分配新值.这是否会带来显着的性能提升?我应该知道其他任何副作用吗?
Alo*_*ave 11
const correctness更多的是让编译器帮助你防止犯下诚实的错误.声明参数的常量只是类型安全的另一种形式,而不是性能的提升.
大多数现代编译器都能够检测变量是否真的是常量,并应用正确的优化.因此,出于性能原因,请不要使用const-correctness .而是出于可维护性的原因使用它并防止自己做出愚蠢的错误.
我希望你知道在函数声明方面这两个是相同的,就是它们声明了相同的功能!
现在,就定义而言,我不能说是否有任何提升,但我可以保证你没有明显的提升.我不相信现代编译器是愚蠢的.他们中的大多数都比你和我聪明.))
还有另一面.一些程序员更愿意在任何适用的地方添加const ,以确保真正的const-correct.这是一个有效的观点和实践.但同样,我不会仅仅因为性能问题而这样做 .