目前在我的科学计算代码中,我有以下内容:
//Include M_PI constant
#define _USE_MATH_DEFINES
//Needed for square root function.
#include <math.h>
这工作......至少在 Linux 上......我没有在所有平台上为 C 编译器测试过它。然而,在调查一些较旧的 Fortran 代码时,我最近遇到了这种在另一个代码(不是我自己的)中定义 pi 的看似聪明的方法:
<angle in deg.>*8.0d0 * datan(1.0d0) / 360.0d0
当然,这在 C 中是完全可行的,对吧?所以我可以定义我的转换函数,例如:
inline double DegToRad(const double A)
{
return A * atan(1.0) / 45.0;
}
哪种方法更便携?是否有任何数字(例如四舍五入)考虑值得使用一种方法而不是另一种方法?
我确实喜欢 M_PI 常量使代码更具可读性。当然,我可以很高兴地使用上述方法分配我自己的 PI 常数。
针对多个平台(Windows、Linux 等)的 C/C++ 代码的最佳实践是什么?