Я пытаюсь использовать sinf
функция в моей Программе C, но это дает мне неопределенную ссылочную ошибку под MSVC 6.0, однако sin
хорошо работает.
Это делает меня любопытным найти различие между sin
и sinf
.
Между чем логическое различие sin
и sinf
?
Как я могу реализовать свое собственное sinf
функциональность?
sin
принимает двойник и возвращает двойник - sinf
принимает поплавок и возвращает поплавок.
Другими словами, sin
— это двойная точность, а sinf
— одинарная точность.
Если вы используете старый компилятор, у которого нет sinf, вы можете реализовать его как:
#define sinf(x) (float)sin((double)(x))
sin принимает двойное значение и возвращает двойное значение и определяется ANSI C. sinf не является.
sinf ()
был добавлен в C на C99, который Microsoft Visual C ++ не поддерживает полностью (даже в этом случае Visual C ++ 6 был выпущен до C99 был стандартизирован).
Вы можете использовать функцию sin ()
, которая принимает double
( sinf ()
принимает float
).