我的构建系统MacOS 10.6.3上用于POSIX数学库的接口是math.h,但是在我的目标系统上,接口文件的名称是cmath.h.在学校我们使用cmath,我想确保我的项目在交付时编译,这是如何实现的.学校的服务器和工作站是运行Windows XP的x86.GCC可在两个平台上使用.
Fre*_*Foo 20
在C++标准中,数学库函数在两个头文件中定义:
<cmath>
Run Code Online (Sandbox Code Playgroud)
在命名空间中包含它们std(例如std::sin),而
<math.h>
Run Code Online (Sandbox Code Playgroud)
在全局命名空间中包含它们(所以只是sin).
两者之间还有其他区别:while <math.h>包含所有C数学函数,它们具有不同类型的不同名称,例如
double sin(double);
float sinf(float);
long double sinl(long double);
Run Code Online (Sandbox Code Playgroud)
等,<cmath>包含重载功能等
namespace std {
double sin(double);
float sin(float);
long double sin(long double);
}
Run Code Online (Sandbox Code Playgroud)
等等.(C++库可能额外出口sinf的<cmath>,但你不能在便携式程序依靠这一点.)
最后,将fabs,fabsf并fabsl从C标准库函数已经成为重载std::abs在<cmath>.
虽然两个标题都在标准中,但您应该更喜欢<cmath>,因为<math.h>只有向前兼容预标准C++和C.
<cmath.h>在标准C++中没有这样的东西.
| 归档时间: |
|
| 查看次数: |
4669 次 |
| 最近记录: |