Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V případě standardu ISO C 11 (C11) a novější hlavička <tgmath.h> kromě zahrnutí <math.h> a <complex.h>poskytuje makra, která vyvolávají odpovídající matematickou funkci na základě typů parametrů.
Matematické funkce knihovny modulu runtime jazyka C mají reálné a složité varianty. Každá varianta se dodává ve třech příchutích v závislosti na typu argumentu: float, doublea long double. Vzhledem k tomu, že jazyk C nepodporuje přetížení, jako je C++, má každá varianta jiný název. Pokud chcete například získat absolutní hodnotu skutečné hodnoty s plovoucí desetinou čárkou, volali fabsfbyste buď hodnotu , fabsnebo fabsl v závislosti na tom, jestli předáváte floathodnotu , doublenebo long double hodnotu. Pokud chcete získat komplexní absolutní hodnotu, volali byste jednu z cabsfhodnot , cabsnebo cabsl v závislosti na tom, jestli předáváte floathodnotu , doublea long double složitou hodnotu. Pokud argumenty neodpovídají žádnému z výše uvedených typů, funkce se vybere, jako by argumenty byly dvojité.
<tgmath.h> obsahuje makra, která zjednodušují výběr správné matematické funkce pro volání. Makra zkontrolují typ, který jsou předány, a potom volají správnou funkci. Makro je například sqrt svázané sqrt(9.9f)sqrtf() s , ale je vázáno sqrt(9.9) na sqrt(). Pokud je alespoň jeden argument makra pro obecný parametr složitý, pak makro vytvoří vazbu na komplexní funkci; jinak vyvolá skutečnou funkci.
Makra obecného <tgmath.h> typu umožňují psát přenosnější kód, protože v závislosti na typu argumentu nemusíte spravovat přetypování ani vybírat různé názvy funkcí.
Tato makra jsou v jejich vlastní hlavičce, aby se programy napsané pomocí <math.h> hlavičky nezalomily. Chová se tak double x = sin(42); , jak má vždy, když zahrnete <math.h>. I tak se očekává, že většina stávajících programů jazyka C nebude ovlivněna, pokud je hlavička <tgmath.h> zahrnuta místo <math.h> nebo <complex.h>.
V následující tabulce jsou uvedena makra, která <tgmath.h> jsou k dispozici a na co se rozbalí.
modf tato tabulka není součástí této tabulky, protože neobsahuje odpovídající typově obecné makro, protože není jasné, jak ho zabezpečit bez komplikování rozlišení typu.
Požadavky
Zkompilovat pomocí /std:c11.
Windows SDK 10.0.20348.0 (verze 2104) nebo novější Nejnovější sadu SDK si můžete stáhnout ze sady Windows SDK . Pokyny k instalaci a použití sady SDK pro vývoj pro C11 a C17 najdete v tématu Instalace podpory C11 a C17 v sadě Visual Studio.