sin v / s sinf в C

Я пытаюсь использовать функцию sinf в моей программе C, но это дает мне неопределенную ошибку ссылки в MSVC 6.0, однако sin работает отлично.

Это заставляет меня любопытно найти разницу между sin и sinf .

Какова логическая разница между sin и sinf ?

Как я могу реализовать свою собственную функциональность sinf ?

sin принимает double и возвращает double – sinf принимает float и возвращает float.

Другими словами, sin – двойная точность, а sinf – одинарная точность.

Если вы используете старый компилятор, который не имеет sinf, вы можете реализовать его как:

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

sin принимает double и возвращает double и определяется ANSI C. sinf не является.

sinf() был добавлен в C на C99, который Microsoft Visual C ++ не полностью поддерживает (даже при этом Visual C ++ 6 был выпущен до стандартизации C99).

Вы можете использовать функцию sin() , которая принимает double ( sinf() принимает float ).