函数参数中的const'ing原型是否会显着提升性能?

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 .而是出于可维护性的原因使用它并防止自己做出愚蠢的错误.

  • @Pieter:"减少打字"绝不是一个反驳论据,反对清晰并带来你的意图. (2认同)

Arm*_*yan 8

我希望你知道在函数声明方面这两个是相同的,就是它们声明了相同的功能!

现在,就定义而言,我不能说是否有任何提升,但我可以保证你没有明显的提升.我不相信现代编译器是愚蠢的.他们中的大多数都比你和我聪明.))

还有另一面.一些程序员更愿意在任何适用的地方添加const ,以确保真正的const-correct.这是一个有效的观点和实践.但同样,我不会仅仅因为性能问题而这样做 .