Приглашаем сайты с посещаемостью от 2-х человек в сутки!

BUY WinRAR

Скачай WinRAR сейчас!

120x90-p4m001.gif (7240 bytes)

Партнерская программа для русскоязычных сайтов

Первоклассный софт для всех.

3.2 Знакомство с препроцессором.

Иногда возникает необходимость использовать в программах константы. Чтобы ввести ту или иную константу в программу, нужно указать её фактическое значение. Однако существуют веские причины использовать вместо этого символические константы. Использование символических констант улучшает читаемость программы (имя говорит нам больше чем число).

Если константа используется в нескольких местах программы и, впоследствии возникла необходимость изменить её значение (например, задать PI с большей точностью), то потребуется только изменить определение символьной константы, а не отыскивать каждый случай её появления в программе.

Для задания символической константы необходимо добавить в файл строку, аналогичную следующей:

#define PI=3.14.

Каждый раз, когда появится имя PI, оно будет заменяться препроцессором величиной 3.14. К моменту начала компиляции все подстановки будут уже сделаны.

При определении символической константы следует придерживаться следующих правил:

  • Сначала идёт ключевое слово #define PI=3.14. Оно должно начинаться с самой левой позиции.
  • Потом следует символическое имя константы, пробел, а затем её величина.

Проследим это наглядней по рисунку:

Символ “точка с запятой” не используется, поскольку это не оператор языка Си, а директива препроцессора.

В процессе использования языка Си выработалась традиция писать константы прописными буквами. Если при просмотре программы Вам встретится имя, написанное прописными буквами, Вы сразу поймёте, что имеете дело с константой, а не переменной. Это ещё один способ улучшить читаемость программы.

Директиву #define можно использовать для определения символьных и строковых констант:

Для задания символьных констант используется знак (апостроф), строковые константы заключаются в кавычки (“ “).

Если Вы разрабатываете целый пакет программ, использующих один и тот же набор констант, Вы можете произвести следующие действия:

  • Соберите все Ваши директивы #define в один файл и назовите его, например, const.h

  • В начало каждого файла, содержащего программу, включите директиву #include <const.h> (или #include “const.h”)

  • Тогда, перед каждой компиляцией, препроцессор прочтёт файл с именем const.h и использует все директивы #define для Вашей программы.

    Символ .h в конце имени файла, должен напоминать Вам о том, что этот файл является заголовком (от английского header), т.е. в нём содержится вся информация, которая должна попасть в начало Вашей программы. Самому препроцессору безразлично, используете Вы символ .h в имени файла или нет.

  • Возможности директивы #define не исчерпываются только представлением констант. С помощью этой директивы можно определить и другие элементы языка. Смотри пример:

    Препроцессор просматривает Вашу программу и проводит поиск элементов, определяемых директивами #define. Обнаружив такие элементы, он полностью заменяет их. Результирующая программа будет полностью идентична той, которую мы могли бы получить, если бы с самого начала писали её в обычных терминах языка Си (смотри следующий фрагмент).

    Google
    Rambler's Top100 Яндекс цитирования PageRank

    Регистрация доменов .RU по минимальной ценеРегистрация в системе обмена ссылками