Программы печати предельных констант.Введенных средств препроцессора и языка вполне достаточно для программы, выводящей на печать (на экран дисплея) значения констант, определяющие в конкретной системе (для конкретного компилятора) пределы изменения данных разных типов. Таблица стандартных обозначений предельных констант есть в Приложении 2. В главе 1 (§1.3) приведены некоторые из них. Там же, говоря об именованных константах, мы отметили, что среди стандартных заголовочных файлов компилятора всегда есть файлы limits.h и float.h,включающие препроцессорное определение предельных констант. Следующая программа печатает некоторые из значений предельных констант для целых типов, определенных конкретной реализацией компилятора с языка Си.
Результат выполнения программы с компилятором Turbo С:
В вызовах функции printf( ) нужно обратить внимание на спецификации преобразования. Все константы целочисленные, поэтому используется спецификатор 'd'. Для величин типа longпотребовался модификатор 'l', т.е. константы LONG_MIN и LONG_MAXвыводятся с использованием спецификаций преобразования %ld. Во всех спецификациях преобразования отсутствуют сведения о длине изображения выводимых значений. Количество позиций в изображениях констант зависит от их значений. Управляющие последовательности '\n' и '\t' обеспечивают при выводе соответственно переходы на новые строки и табуляцию.
Для вывода вещественных значений с мантиссой и порядком в форматной строке функции printf( ) нужно использовать спецификацию %е. Следующая программа выводит на экран значения некоторых из предельных вещественных констант:
Результаты выполнения программы с компилятором Turbo С:
Отметим применение символа табуляции '\t' для размещения информации, выводимой на дисплей. Больше в использовании функции printf(), кроме спецификации %е, ничего нового нет. Стоит пояснить смысл напечатанных констант. FLT_EPSILONиDBL_EPSILON- максимальные значения типов float и double,сумма каждого из которых со значением 1.0 не отличается от 1.0. Предельные константы FLT_EPSILON и DBL_EPSILONназывают "машинными нулями" относительно вещественного значения 1.0. FLT_MIN, FLT_MAX и DBL_MAX- предельные значения для вещественных данных. FLT_MANT_MG, DBL_MANT_DIG -количество двоичных цифр (бит) в мантиссах соответственно чисел типа float и double.