Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az ISO C Standard 11 (C11) és újabb verziók esetén a fejléc a <tgmath.h> paraméterek típusai alapján a megfelelő matematikai függvényt meghívó makrókat is tartalmaz a beleadás és <math.h>a beleadás <complex.h> mellett.
A C futtatókörnyezeti kódtár matematikai függvényei valós és összetett változatokban jelennek meg. Minden változat háromféle ízben érhető el az argumentum típusától függően: float, doubleés long double. Mivel a C nem támogatja a túlterhelést, mint a C++ esetében, minden változatnak más a neve. Ha például egy valós lebegőpontos érték abszolút értékét szeretné lekérni, akkor a fabsf, fabs vagy fabsl függvényt kell meghívnia attól függően, hogy egy float, double vagy long double értéket ad át. Az összetett abszolút érték lekéréséhez hívja meg valamelyik cabsf, cabs vagy cabsl függvényt, attól függően, hogy egy float, double vagy long double összetett értéket ad át. Ha az argumentumok nem egyeznek a fent említett típusok egyikével sem, a függvény úgy lesz kiválasztva, mintha az argumentumok duplázódtak volna.
<tgmath.h> olyan makrókat tartalmaz, amelyek megkönnyítik a megfelelő matematikai függvény kiválasztását. A makrók megvizsgálják az átadott típust, majd meghívják a megfelelő függvényt. Például, a makró sqrt-t sqrt(9.9f)-hoz köt, de sqrtf()-t sqrt(9.9)-hoz köt. Ha egy általános paraméter legalább egy makróargumentuma összetett, akkor a makró egy összetett függvényhez kötődik; ellenkező esetben valós függvényt hív meg.
A típus-általános makrók <tgmath.h> lehetővé teszik, hogy hordozhatóbb kódot írjon, mert az argumentum típusától függően nem kell kezelnie a kasztolásokat, és nem kell különböző függvénynevek kiválasztásával bajlódnia.
Ezek a makrók a saját fejlécükben vannak, így a <math.h> fejlécet használó programok nem fognak megszakadni. Így double x = sin(42); úgy viselkedik, mint mindig, amikor a <math.h>-t használja. Ennek ellenére a legtöbb meglévő C-program várhatóan nem lesz érintett, amikor a <tgmath.h> fejlécet illesztik be <math.h> vagy <complex.h> helyett.
Az alábbi táblázat felsorolja a rendelkezésre álló <tgmath.h> makrókat, és hogy mire terjednek ki.
modf nem szerepel ebben a táblában, mert nem rendelkezik megfelelő típus-általános makróval, mert nem egyértelmű, hogyan teheti biztonságossá a típusfeloldás bonyolítása nélkül.
Követelmények
Fordítsa le a(z) /std:c11.
Windows SDK 10.0.20348.0 (2104-es verzió) vagy újabb. A legújabb SDK letöltéséhez tekintse meg a Windows SDK-t. A C11-hez és C17-hez készült SDK telepítésével és használatával kapcsolatos utasításokat a C11 és C17 telepítése a Visual Studióban című témakörben találja.