"Язык программирования Си. Издание 3-е, исправленное" - читать интересную книгу автора (Керниган Брайан В., Ритчи Деннис М.)

1.4 Именованные константы

Прежде чем мы закончим рассмотрение программы преобразования температур, выскажем еще одно соображение. Очень плохо, когда по программе рассеяны "загадочные числа", такие как 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-строки точка с запятой не ставится.