首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C++中的常量和编译器优化

C++中的常量和编译器优化
EN

Stack Overflow用户
提问于 2008-10-17 13:56:36
回答 5查看 21.1K关注 0票数 50

我已经阅读了C++中关于常量正确性的所有建议,它很重要(部分),因为它有助于编译器优化您的代码。我从来没有见过关于编译器如何使用这些信息来优化代码的很好的解释,即使是好书也没有解释幕后发生的事情。

例如,编译器如何优化声明为const的方法,而不是声明为const但应该为const的方法。当引入可变变量时会发生什么?它们会影响const方法的这些优化吗?

EN

回答 5

Stack Overflow用户

发布于 2008-10-17 14:14:56

嗯。常量正确性更像是一种样式/错误检查,而不是一种优化。一个全能的优化编译器将跟踪变量的用法,并可以检测变量是否为有效常量。

更重要的是,编译器不能指望你告诉它真相--你可能会在一个它不知道的库函数中抛弃const。

所以,常量正确性是一个值得追求的目标,但它不会告诉编译器任何它自己不会弄明白的事情,假设一个好的优化编译器。

票数 5
EN

Stack Overflow用户

发布于 2008-10-17 14:15:28

如果优化器真的在const声明中投入了大量资源,我会感到惊讶。有很多代码最终会抛弃const,这将是一个非常不计后果的优化器,它依赖于程序员的声明来假设何时状态可能会发生变化。

票数 1
EN

Stack Overflow用户

发布于 2008-12-23 21:25:26

常量正确性作为文档也很有用。如果一个函数或参数被列为const,我就不需要担心我的代码中的值会发生变化(除非团队中的其他人非常顽皮)。不过,我不确定如果它没有内置到库中,它是否真的值得。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/212237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档