sin v / s функция sinf в C - PullRequest
       19

sin v / s функция sinf в C

7 голосов
/ 16 мая 2010

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

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

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

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

Ответы [ 3 ]

7 голосов
/ 16 мая 2010

sin принимает двойное число и возвращает двойное значение - sinf принимает число с плавающей точкой и возвращает число с плавающей точкой.

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

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

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

3 голосов
/ 16 мая 2010

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

2 голосов
/ 16 мая 2010

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

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

...