netlib.narod.ru< Назад | Оглавление | Далее >

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 точка с запятой не ставится.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz