一位朋友告诉我,这样做效率更高
int addNumbers(const int number1, const int number2);比
int addNumbers(int number1, int number2);当然,假设number1和number2不会被赋予新值。这是否会带来显著的性能提升?有没有其他我应该知道的副作用?
发布于 2011-06-18 22:49:04
const correctness更多的是让编译器帮助你避免犯错误。声明参数的常量只是类型安全的另一种形式,而不是对性能的提升。
大多数现代编译器将能够检测变量是否真的是常量,并应用正确的优化。因此,出于性能原因,请不要使用常量正确性。相反,出于的可维护性原因,&可以防止你自己犯下愚蠢的错误,。
发布于 2011-06-18 22:47:32
我希望您知道,就函数声明而言,这两个函数是完全相同的,即它们声明了相同的函数!
现在,就定义而言,我不能说是否有任何提升,但我可以向你保证,没有显著的提升。我不相信现代编译器是愚蠢的。他们中的大多数人都比你和我聪明。)
还有另一面。一些程序员会更喜欢在任何合适的地方添加const ,这是真正的const-correct.这是一个有效的观点和实践。但再说一次,我不会仅仅为了性能问题而使用。
发布于 2011-06-18 22:59:46
这充其量是微优化;在最坏的情况下是错误的。
不要为这样的想法而烦恼。
如果您不打算更改该值,请使用const。然后继续前行。
https://stackoverflow.com/questions/6396756
复制相似问题