sin v / s fonction sinf en C

J’essaie d’utiliser la fonction sinf dans mon programme C, mais cela me donne une erreur de référence non définie sous MSVC 6.0, mais sin fonctionne correctement.

Cela me rend curieux de trouver la différence entre le sin et le sin .

Quelle est la différence logique entre sin et sinf ?

Comment puis-je implémenter ma propre fonctionnalité sinf ?

sin prend un double et retourne un double – sinf prend un float et retourne un float.

En d’autres termes, le sin est une double précision et sinf est une simple précision.

Si vous utilisez un ancien compilateur qui n’a pas Sinf, vous pouvez l’implémenter comme suit:

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

sin prend un double et retourne un double et est défini par ANSI C. sinf ne l’est pas.

sinf() été ajouté à C dans C99, ce que Microsoft Visual C ++ ne prend pas complètement en charge (même dans ce cas, Visual C ++ 6 a été publié avant la normalisation de C99).

Vous pouvez utiliser la fonction sin() , qui prend un double ( sinf() prend un float ).