netlib.narod.ru | < Назад | Оглавление | Далее > |
Последнее замечание, прежде чем мы навсегда оставим программу перевода температур. Прятать «магические числа», такие как 300 и 20, внутрь программы — это неудачная практика; они дают мало информации тем, кто, возможно, должен будет разбираться в этой программе позднее, и их трудно изменять систематическим образом. Один из способов работать с «магическими числами» — дать им значащие имена. Конструкция #define позволяет определить символьное имя или именованную константу, которая будет заменяться конкретной строкой символов:
#define имя подставляемый текст
После данной строки компилятор заменит все не заключенные в кавычки и не являющиеся частью другого слова появления указанного имени на соответствующий текст. Имя формируется по тем же правилам, что и имена переменных — оно должно быть последовательностью букв и цифр и начинаться с буквы. Подставляемый текст может быть абсолютно произвольным, не обязательно только цифрами.
#include <stdio.h> #define LOWER 0 /* Нижняя граница таблицы */ #define UPPER 300 /* Верхняя граница */ #define STEP 20 /* Размер шага */ /* Печать таблицы температур по Фаренгейту и Цельсию */ main() { int fahr; for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP) printf("%3d %6.1f\n", fahr, (5.0/9.0) * (fahr - 32)); }
Величины LOWER, UPPER и STEP — это именованные константы, а не переменные, поэтому для них нет объявлений. По общепринятому соглашению имена именованных констант набираются заглавными буквами, чтобы они отличались от написанных строчными буквами имен переменных. Обратите внимание, что в конце строки #define точка с запятой не ставится.
netlib.narod.ru | < Назад | Оглавление | Далее > |