sin中的sin v / s sinf函数

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

这让我很好奇地发现sinsin之间的区别。

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

我怎样才能实现自己的sinffunction?

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

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

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

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

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

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

你可以使用sin()函数,它取一个doublesinf()取一个float )。