所以我经常看到这样的事情:
#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/