Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для iso C Standard 11 (C11) и более поздних <tgmath.h> версий заголовок, помимо включения <math.h> и <complex.h>, предоставляет макросы, вызывающие соответствующую математические функции на основе типов параметров.
Математические функции библиотеки среды выполнения C доступны в реальных и сложных вариантах. Каждый вариант имеет три варианта в зависимости от типа аргумента: float, doubleи long double. Так как C не поддерживает перегрузку, например C++, каждый вариант имеет другое имя. Например, чтобы получить абсолютное значение реального значения с плавающей запятой, вызовите либо fabsffabs, либо fabsl в зависимости от того, передаете floatdoubleли вы значение или long double значение соответственно. Чтобы получить комплексное абсолютное значение, необходимо вызвать один из cabsf, cabsили cabsl в зависимости от того, передаете floatли вы значение double, и long double сложное значение соответственно. Если аргументы не соответствуют ни одному из указанных выше типов, функция выбирается так, как если бы аргументы были двойными.
<tgmath.h> содержит макросы, упрощающие выбор правильной математической функции для вызова. Макросы проверяют тип, который они передаются, а затем вызывают правильную функцию. Например, sqrt макрос привязывается к sqrt(9.9f), но привязывается sqrtf()sqrt(9.9) к sqrt(). Если хотя бы один аргумент макроса для универсального параметра является сложным, макрос привязывается к сложной функции; в противном случае он вызывает реальную функцию.
Макросы <tgmath.h> универсального типа позволяют создавать более переносимый код, так как вам не нужно управлять приведением или выбирать разные имена функций в зависимости от типа аргумента.
Эти макросы находятся в собственном заголовке, чтобы программы, написанные с помощью заголовка <math.h> , не прерывались. Так что double x = sin(42); ведет себя так, как всегда есть, когда вы включаете <math.h>. Несмотря на это, большинство существующих программ C, как ожидается, не затрагиваются при включении заголовка <tgmath.h> вместо <math.h> него или <complex.h>.
В следующей таблице перечислены макросы, доступные <tgmath.h> и развернутые в них.
modf Не включен в эту таблицу, так как он не имеет соответствующего макроса типа универсального типа, так как он не ясно, как сделать его безопасным без усложнения разрешения типов.
Требования
Выполните сборку с помощью /std:c11.
Пакет Windows SDK 10.0.20348.0 (версия 2104) или выше. Скачать последнюю версию Windows SDK можно здесь. Инструкции по установке и использованию пакета SDK для разработки C11 и C17 см. в статье Включение поддержки C11 и C17 в Visual Studio.