logo search
Подбельский Фомин_Программирование на языке СИ_

Программы печати предельных констант.

Программы печати предельных констант. Введенных средств препроцессора и языка вполне достаточно для программы, выводящей на печать (на экран дисплея) значения констант, определяющие в конкретной системе (для конкретного компилятора) пределы изменения данных разных типов. Таблица стандартных обозначений предельных констант есть в Приложении 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.