Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Название:Язык программирования C. Лекции и упражнения (6-е изд.) 2015
- Автор:
- Жанр:
- Издательство:Вильямс
- Год:0101
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание
Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
858 Приложение Б
Таблица 6.V.12. Функции локализации
Возможными значениями параметра locale при вызове setlocaleO могут быть "С", что принято по умолчанию, и что представляет собственную среду, определенную реализацией. Реализация может определять дополнительные локальные установки. Возможные значения параметра category при вызове setlocale() представлены макросами, которые перечислены в табл. B.V.13.
Таблица 6.V.13. Макросы категорий
В табл. B.V14 перечислены обязательные члены структуры struct lconv. Таблица 6.V.14. Обязательные члены структуры struct lconv
860 Приложение Б
Математическая библиотека: math.h
В стандарте С99 внутри заголовочного файла math.h определены два типа:
float_t double_t
Эти типы по ширине, но меньшей мере, соответствуют типам float и double, a double t — по меньшей мере, типу float_t. Они предназначены для того, чтобы служить типами, обеспечивающими наиболее эффективные вычисления с данными
float и double.
В math.h также определено несколько макросов, которые описаны в табл. Б.У15; все они кроме HUGE_VAL добавлены стандартом С99. Некоторые из них более подробно обсуждаются в разделе VIII приложения.
Таблица 6.V.15. Макросы в math.h
Справочные материалы 861
Окончание табл. Б. У. /5
Математические функции обычно работают со значениями типа double. В стандарте С99 были добавлены версии float и long double этих функций, что отмечается дополнением их имен соответственно суффиксами f и 1. Например, теперь доступны следующие прототипы:
double sin(double);
float sinf(float);
long double sinl(long double);
Для краткости в табл. BV.16 перечислены только версии double функций математической библиотеки. В таблице присугствует ссылка на константу FLT_RADIX. Эта константа, определенная в float.h, в основном используется для возведения в степень во внугреннем представлении значения плавающей запятой. Чаще всего она равна 2.
Таблица 6.V.16. Стандартные математические функции ANSI С
Справочные материалы 863
Продолжение табл. Б. У. /6
Прототип
Описание
double floor(double х);
Возвращает максимальное целое значение, не большее чем х
double nearbyint(double x);
Округляет х до ближайшего целого в формате с плавающей запятой; использует направление округления, установленное средой плавающей запятой, если она доступна. Исключение “неточности” не генерируется (С99)
double rint(double x);
Подобна nearbyint(), но может генерировать исключение "неточности” (С99)
long int lrint (double x);
Округляет х до ближайшего целого в формате long int; использует направление округления, установленное средой плавающей запятой, если она доступна (С99)
long long int llrint( double x);
Округляет х до ближайшего целого в формате long long int; использует направление округления, установленное средой плавающей запятой, если она доступна (С99)
double round(double x);
Округляет х до ближайшего целого в формате с плавающей запятой; всегда округляет частичные значения в сторону от нуля (С99)
long int lround (double x);
Подобна round(), но возвращает ответ типа long int (С99)
long long int lround ( double x);
Подобна round(), но возвращает ответ типа long long int (С99)
double trunc(double x);
Округляет х до ближайшего целого в формате с плавающей запятой, которое не больше абсолютного значения х (С99)
int fmod(double x, double y);
Возвращает дробную часть х/у; если у — не ноль, то результат получает тот же знак, что х, и по абсолютному значению меньше, чем у
double remainder(double x, double y);
Возвращает х REM у, что в стандарте IEC 60559 определено как х - n*у, где n — ближайшее к х/у целое; n — четное, если абсолютное значение (n — х/у) равно 1/2 (С99)
double remquo(double x, double y, int *quo);
Возвращает то же значение, что и reminder(), и помещает в место, указываемое quo, значение, имеющее тот же знак, что и х/у, и имеющее абсолютную целую величину х/у по модулю 2\ где к — зависящее от реализации целое, значение которого не меньше 3 (С99)
double copysign(double x, double y);
Возвращает значение абсолютной величины х со знаком у (С99)
double nan(
const char *tagp);
Возвращает double-представление NaN; nan("последовательность-символов-п") эквивалентно strtod ("NAN (последовательность-символов-п)", (char **) NOLL); nan ("") — эквивалент strtod ("NAN О", (char **) NULL); для других строк, передаваемых в качестве аргументов, вызов эквивалентен strtod ("NAN", (char * *) NULL). Возвращает 0, если несигнальные NaN не поддерживаются (С99)
double nextafter(double x, double y);
Возвращает следующее представимое значение типа double после х в направлении у; возвращает х, если х равно у (С99)
double nexttoward(double x, long double y);
То же самое, что и nextafter(), за исключением того, что второй аргумент имеет тип long double, и если х равно у, функция возвращает у, преобразованное в double (С99)
864 Приложение Б
Окончание табл. Б. У. 16
Прототип
Описание
double fdim(double x, double y);
Возвращает положительную разность аргументов (С99)
double fmax(double x, double y);
Возвращает максимальное числовое значение из двух аргументов; если один из аргументов NaN, а второй — число, возвращается второй аргумент (С99)
double fmin(double x, double y);
Возвращает минимальное числовое значение из двух аргументов; если один из аргументов NaN, а второй — число, возвращается второй аргумент (С99)
double fma(double x, double y, double z);
Возвращает величину (х*у) +z как тернарную операцию, округленную один раз в конце (С99)
int isgreater{реальный- тип-с-плавающей-запятой x, реальный-тип- с-плавающей-запятой у);
Макрос С99, который возвращает значение (х) > (у) без генерации исключения плавающей запятой типа "некорректное число", если один или оба аргумента являются NaN
int isgreaterequal{ реальный-тип-с-плавающей- запятой х, реальный-тип- с-плавающей-запятой у);
МакросС99, который возвращает значение (х) >= (у) без генерации исключения плавающей запятой типа "некорректное число”, если один или оба аргумента являются NaN
int isless{реальный-тип- с-плавающей-запятой х, реальный-тип-с-плавающей- запятой у);
Макрос С99, который возвращает значение (х) < (у) без генерации исключения плавающей запятой типа "некорректное число”, если один или оба аргумента являются NaN
Читать дальшеИнтервал:
Закладка: