所以我经常看到这样的东西:
#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;
解决方法
This means that half PI value is calculated every time I use gf_PIhalf in my code,right?
不,不可能.
您可以合理地指望编译器在编译时执行该乘法,而不是运行时.