sin中的sin v / s sinf函数

时间:2010-05-15 20:26:57

标签: c math visual-c++ floating-point sin

我正在尝试在我的C程序中使用sinf函数,但它在MSVC 6.0下给出了一个未定义的引用错误,但sin工作正常。

这让我很想知道sinsinf之间的区别。

sinsinf之间的逻辑区别是什么?

如何实现自己的sinf功能?

3 个答案:

答案 0 :(得分:7)

sin取一个double并返回一个double - sinf取一个float并返回一个float。

换句话说,sin是双精度,sinf是单精度。

如果您使用的是没有sinf的旧编译器,则可以将其实现为:

#define sinf(x) (float)sin((double)(x))

答案 1 :(得分:3)

sin取一个double并返回一个double,由ANSI C定义.sinf不是。

答案 2 :(得分:2)

sinf()被添加到C99中的C中,Microsoft Visual C ++并不完全支持(即便如此,Visual C ++ 6在C99标准化之前发布)。

您可以使用sin()功能,该功能需要doublesinf()需要float)。