B.21 <tgmath.h> (C99) 

In <tgmath.h> sind die Headerdateien <math.h> und <complex.h> inkludiert und definieren typengenerische Makros. Der Vorteil dieser Makros besteht darin, dass Sie unabhängig vom Typ des Arguments die mathematischen Funktionen mit demselben Namen aufrufen können. Das bedeutet: Sie können außer Acht lassen, welche mathematischen Funktionen Sie für den Typ float, double, long double, float complex, double complex und long double complex aufrufen.
Wollen Sie beispielsweise eine Funktion zum Ziehen der Quadratwurzel verwenden, so mussten Sie, abhängig vom Datentyp, zwischen sechs verschiedene Varianten mit sqrtf(), sqrt(), sqrtl(), csqrtf(), csqrt() und csqrtl() unterscheiden. Mit den typengenerischen Makros in <tgmath.h> brauchen Sie sich darüber keine Gedanken mehr zu machen. Hiermit brauchen Sie lediglich die Funktionen der double- bzw. double complex-Variante kennen, und ein Aufruf von sqrt() führt automatisch die entsprechende Erweiterung aus. Rufen Sie beispielsweise sqrt() mit einem float complex-Argument auf, wird automatisch die Erweiterung csqrtf() ausgeführt.
Hinweis |
Die Funktionen carg(), cimag(), conj(), cproj() und creal() sind nur für komplexe Gleitpunktzahlen definiert, und daher führt ein Aufruf Funktionen mit reellen Typen zu einem Aufruf der Funktion des komplexen Typs. |
Hinweis |
Ganzzahlige Argumente werden automatisch in ein double umgewandelt. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.