所以我经常看到这样的事情:

#define gf_PI  f32(3.14159265358979323846264338327950288419716939937510)
#define gf_PIhalf  f32(3.14159265358979323846264338327950288419716939937510 * 0.5)

这意味着每次我在代码中使用gf_PIhalf都会计算一半的PI值,对吗?
改为直接写半个PI的值会更好吗?

执行以下操作不是更好:
#define gf_PI f32(3.14159265358979323846264338327950288419716939937510)
const float gf_PIHalf = gf_PI * 0.5f;    // PIHalf is calculated once

最后,这样做不是最好的做法(以及为什么它似乎并不常见):
const float gf_PI = 3.14159265358979323846264338327950288419716939937510;
const float gf_PIHalf = gf_PI * 0.5f;

最佳答案



不,不太可能。

您可以合理地依靠编译器在编译时(而不是运行时)执行该乘法。

关于c++ - 定义常量时包括算术运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15146454/

10-09 03:00