假设您的首要目标是执行速度,然后是代码整洁度,最后是资源使用。
如果在算法的某个时刻,一个变量(例如一个 double 变量)不会再改变(但您仍然会多次读取它),您会把它复制成一个常量值吗?
最佳答案
如果你想让你的代码更清晰,无论如何,将你的值复制到 const double const_value = calculated_value;
,但是编译器非常擅长跟踪依赖关系,而且这不太可能(假设你正在使用一个现代的、相当有能力的编译器)因为你这样做,代码会更快或“更好”。编译器极有可能会相信您想要第二个变量这一事实,因此会进行复制,并因此使代码变慢。
与往常一样,如果性能对您的应用程序很重要,请为您的特定代码制定一个“之前和之后”的比较基准,因为在 Internet 上阅读页面或在 SO 上询问与对您的代码进行基准测试是不同的。
关于c++ - 将值复制到常量中以进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16279136/