Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W przypadku standardu ISO C Standard 11 (C11) i nowszych nagłówek oprócz elementów <tgmath.h> i <math.h>udostępnia makra, <complex.h> które wywołują odpowiednią funkcję matematyczną na podstawie typów parametrów.
Funkcje matematyczne biblioteki środowiska uruchomieniowego języka C są dostępne w rzeczywistych i złożonych wariantach. Każdy wariant ma trzy warianty, w zależności od typu argumentu: float, doublei long double. Ponieważ język C nie obsługuje przeciążenia, takiego jak C++, każdy wariant ma inną nazwę. Aby na przykład uzyskać wartość bezwzględną rzeczywistej wartości zmiennoprzecinkowej, należy wywołać fabsfmetodę , fabslub fabsl w zależności od tego, czy przekazujesz floatodpowiednio wartość , doublelub long double . Aby uzyskać złożoną wartość bezwzględną, należy wywołać jedną z cabsfwartości , cabslub cabsl w zależności od tego, czy przekazujesz odpowiednio wartość zespolonej float, doublei long double . Jeśli argumenty nie pasują do żadnego z wymienionych powyżej typów, funkcja jest wybierana tak, jakby argumenty były podwójne.
<tgmath.h> zawiera makra, które upraszczają wybór odpowiedniej funkcji matematycznej do wywołania. Makra sprawdzają typ, który są przekazywane, a następnie wywołają właściwą funkcję. Na przykład sqrt makro wiąże się z sqrt(9.9f)sqrtf() elementem , ale wiąże się z elementem sqrt(9.9)sqrt(). Jeśli co najmniej jeden argument makra dla parametru ogólnego jest złożony, makro wiąże się z funkcją złożoną; w przeciwnym razie wywołuje rzeczywistą funkcję.
Makra ogólne typu w programie <tgmath.h> umożliwiają pisanie bardziej przenośnego kodu, ponieważ nie trzeba zarządzać rzutowaniem ani wybierać różnych nazw funkcji w zależności od typu argumentu.
Te makra znajdują się we własnym nagłówku, dzięki czemu programy napisane przy użyciu nagłówka <math.h> nie zostaną przerwane. Zachowuje double x = sin(42); się tak, jak zawsze, gdy uwzględniasz <math.h>. Mimo to większość istniejących programów języka C powinna nie mieć wpływu, gdy <tgmath.h> nagłówek zostanie dołączony zamiast <math.h> lub <complex.h>.
W poniższej tabeli wymieniono makra, które są dostępne w <tgmath.h> programie i do których się rozszerzają.
modf nie znajduje się w tej tabeli, ponieważ nie ma odpowiedniego makra ogólnego typu, ponieważ nie jest jasne, jak zapewnić bezpieczeństwo bez komplikowania rozpoznawania typów.
Wymagania
Skompiluj za pomocą polecenia /std:c11.
Windows SDK 10.0.20348.0 (wersja 2104) lub nowsza. Zobacz Zestaw Windows SDK , aby pobrać najnowszy zestaw SDK. Aby uzyskać instrukcje dotyczące instalowania i używania zestawu SDK dla programowania C11 i C17, zobacz Instalowanie obsługi C11 i C17 w programie Visual Studio.