Sünde v/s sinf-Funktion in C
Ich versuche, mit der sinf
Funktion in meinem C-Programm, aber es gibt mir ein undefined reference-Fehler unter MSVC 6.0, jedoch sin
funktioniert einwandfrei.
Diese machen mich neugierig auf die Differenz zwischen sin
und sinf
.
Was ist der logische Unterschied zwischen sin
und sinf
?
Wie kann ich die Umsetzung meiner eigenen sinf
Funktionalität?
- Mit einer float-Funktion zum berechnen der Sinus ist eine sinf.
Du musst angemeldet sein, um einen Kommentar abzugeben.
sin
nimmt double und gibt zurück ein Doppel -sinf
nimmt einen schweben und gibt einem Schwimmer.In anderen Worten
sin
ist double precision undsinf
ist einfacher Genauigkeit.Wenn Sie mit einem alten compiler, der nicht die sinf Sie implementieren können, wie:
#define sinf(x) (float)sin((double)(x))
Sünde nimmt double und gibt ein double zurück und ist definiert durch ANSI-C. sinf nicht.
sinf()
ist nicht standard in C89. Es wird standard C99.sinf()
Hinzugefügt wurde C in der C99-die Microsoft Visual C++ nicht vollständig unterstützt (auch so, Visual C++ 6 veröffentlicht wurde, bevor C99 standardisiert wurde).Können Sie die
sin()
Funktion, die einedouble
(sinf()
dauertfloat
).