Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций(ОАиП).doc
Скачиваний:
70
Добавлен:
11.05.2015
Размер:
1.07 Mб
Скачать

Подключение файлов исходного текста

Напомним, что имеются два варианта запроса включения в текущий файл содержимого другого файла. Директива:

#include < ID_файла>

вводит содержимое файла из стандартного каталога (обычно - \include\), а директива:

#include " ID_файла"

организует последовательный поиск в текущем, системном и стандартном каталогах. Например:

#include <alloc.h> // Средства распределения памяти

#include <dos.h> // Обращения к функциям ОС

#include "a:\prs\head.h" // Включение файла пользователя

В стандартных каталогах системы программирования помещены операторы описания внутренних функций языка C, системных переменных среды исполнения, структур данных файловой системы, строк диагностических сообщений, определения констант и т.п.

Рекомендуется описания системных объектов включать из стандартных каталогов и размещать их в начале файла исходного текста программы. Системные объекты в результате получают атрибут области действия "глобальный", что устранит неоднозначность их описания.

Условная компиляция

Директивы условной компиляции и реализуемые правила включения исходного текста:

а) условное включение (аналог работы оператора if):

#if<предикат_условия>

ТЕКСТ_1

#endif

б) альтернативное включение (аналог if-else):

#if<предикат_условия>

ТЕКСТ_1

#else

ТЕКСТ_2

#endif

Виды предикатов условий:

константное_выражение  истина, если его значение не равно нулю;

def ID  истина, если «ID» был опреде­лен ранее оператором #define;

ndef ID  истина, если «ID» не был опре­де­лен оператором #define.

Константное_выражение отделяется от ключевого слова if разделителем, а def и ndef - нет.

Пример:

#ifdef DEBUG

print_state();

#endif

Элементы исходного текста "ТЕКСТ_1" или "ТЕКСТ_2" могут содержать любые директивы препроцессора.

Примеры:

#ifndef EOF

#define EOF -1

#endif

#if UNIT==CON

#include "conproc.c"

#else

#include "outproc.c"

#endif

Изменение нумерации строк и идентификатора файла

По умолчанию диагностические сообщения компилятора привязываются к номеру строки и ID файла исходного текста.

Директива

#line номер_строки ID_файла

позволяет с целью более приметной привязки к фрагментам текста изменить номер текущей строки и ID файла на новые значения («ID­_фай­ла» можно опустить). В системе программирования TURBO-C оператор line игнорируется.

Св. план 2004, поз. 27

Учебное издание

Бусько Виталий Леонидович,

Корбит Анатолий Григорьевич,

Кривоносова Татьяна Михайловна

Конспект лекций по курсу

ОСНОВЫ АЛГОРИТИМЗАЦИИ И ПРОГРАММИРОВАНИЯ

для студентов всех специальностей и всех форм обучения

Редактор Е.Н.Батурчик

Компъютерная верстка Т.В.Шестакова

Подписано в печать Формат 60x84 1/16. Бумага офсетная

Печать ризографическая Гарнитура «Ариал» Усл. печ. л.

Уч.-изд.л. Тираж 500 экз. Заказ .

Издатель и полиграфическое исполнение:

Учреждение образования

«Белорусский государственный университет информатики и радиоэлектроники»

Лицензия ЛП № 156 от 05.02.2001.

Лицензия ЛВ № 509 от 03.08.2001.

220013, Минск, П.Бровки, 6.

92