sin中的sin v / s sinf函数
我试图在我的C程序中使用sinf
函数,但它在MSVC 6.0下给我一个未定义的引用错误,但是sin
工作正常。
这让我很好奇地发现sin
与sin
之间的区别。
sin
和sinf
之间的逻辑区别是什么?
我怎样才能实现自己的sinf
function?
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()
函数,它取一个double
( sinf()
取一个float
)。