Препроцессор языка Си

Для того, чтобы исполнить программу на компьютере её нужно разместить в его памяти, но единственный язык, напрямую выполняемый процессором компьютера — это машинный код. Перевод исходного текста на языке высокого уровня, написанного программистом, в машинный код выполняют специальные программы, называемые трансляторами или компиляторами, а процесс превращения исходного текста программы в машинные коды называется компиляцией.

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

· включение файлов в текст программы (директива #include);

· изменение текста программы с помощью макроподстановок (директива #define).

Для того, чтобы обратиться к препроцессору, необходимо включить в текст программы специальные команды, или директивы препроцессора, начинающиеся со знака #. После директив препроцессора точка с запятой не ставятся.

 

Директива #include.

#include –директива включенияфайла в исходный текст программы.

Имеется две её формы:

#include "имя файла"

#include <имя файла>

Если имя файла указано в кавычках, то поиск файла осуществляется в соответствии с заданным маршрутом, а при его отсутствии в текущем каталоге, то есть в том же каталоге, что и текст программы.

Если имя файла задано в угловых скобках, то поиск файла производится в стандартных директориях операционной системы, задаваемых командой PATH (например, в каталоге файлов включений, прописанном в среде программирования).

Директива #include широко используется для включения в программу так называемых заголовочных файлов, содержащих прототипы библиотечных функций, и поэтому большинство программ на С начинаются с этой директивы.

Например #include <stdio.h> включает в программу пользователя заголовочный файл стандартной библиотеки ввода-вывода языка С.

Директива # define.

 

#defineслужит для замены часто использующихся констант, ключевых слов, операторов или выражений некоторыми идентификаторами. Например, идентификаторы, заменяющие текстовые или числовые константы, называются именованными константами и могут быть заданы с помощью директивы #define.

Формат директивы:

#define идентификатор текст

 

Эта директива заменяет все вхождения идентификатора на «текст». Текст может представлять собой любой фрагмент программы на С, а также может и отсутствовать. В последнем случае все экземпляры идентификатора удаляются из программы. Проводя аналогию с текстовым редактором, действия директивы #define аналогичны «поиску с заменой».

Пример:

#define QU 40

#define WEWQ (QU+15)

 

Эти директивы изменят в тексте программы каждое слово QU на число 40, а каждое слово WEWQ на выражение (40+15) вместе с окружающими его скобками. При выполнении данной директивы препроцессора исключение составляют текстовые константы, заключенные в двойные кавычки, внутри которых подстановки не производятся. Например, внутри строки "В данной строке QU записано один раз" слово QU изменяться не будет.








Дата добавления: 2015-02-23; просмотров: 747;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.