Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Директивы препроцессора языка Си

 

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

Макрос – это средство замены одной последовательности символов на другую.

• Существуют следующие директивы препроцессора.

#define – определение макроса

#undef – отмена определения макроса

#include – выключение объекта заголовка (стандартных библиотек)

#if – компиляция, если выражение истина

#ifdef – компиляция, если макрос определен

#ifndef – компиляция, если макрос не определен

#else – компиляция, если выражение в if ложно

#error – формирование ошибок в трансляции

 

Рассмотрим #define – определение макроса

Эта директива используется для определения назначения указанных в ней идентификаторов. Использование этой директивы внешне похоже на работу с константами. Каждая строка #define состоит из трех частей:

1) сама директива;

2) выбранная вами аббревиатура или идентификатор, который принято называть макрос;

3) подставляемые значения или список замены или тело.

Процесс начинающийся макросом и завершающийся процессом замены, называется макрорасширением.

Общая схема.

#define имя макроса последовательность символов;

• Эта директива вводит макрос или последовательность символов.

Принцип работы: когда препроцессор находит в исходном тексте программы имя макроса, то он поменяет ее на последовательность символов (на строку). Любые вхождения макроса, обнаруженные в строках, символах, символьных константах и т.д., замене не подлежат.

Например,

• #define MAX 100;

• эта директива определяет переменную мах как величину, равную 100, и в исходном файле (в исходной программе) вместо макроса мах всегда будет поставляться число 100.

Большие возможности представляют макроопределения с параметрами в виде схемы:

• #define им.м.(список параметров через запятую)

Пример использования макроса с параметром

#define max(a,b) (a>b?a:b)

 

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

• И если в программе будет макровызов max(x,y), то он заменяется выражением (x>y?x:y).

• Если r=max(z,y), то r=(z>y?z:y);

 

• С помощью макросов

• удобно организовывать доступ к элементам массива.

• #define N 4 //- число строк массива

• #define M 5 //- число столбцов

• #define A(ixj) x[Mx(i-1)+(j-1)]

• #define C1 “исходная последовательность”

• #define C2 “четный элемент последовательности”

• printf(C1);printf(C2);

 

Рассмотрим

#include<имя файла> подключает стандартный заголовок файла

• #include”имя файла” подключает файлы пользователя

Стандартные заголовочные файлы.

• Stdio.h – вывод на экран

• Conio.h – работа с окнами и цветом

• Math.h – математическая библиотека

• Stdlib.h – функция общего назначения

• Graphics.h – графическая библиотека

• Assert.h – диагностика программ

• Ctype.h – преобразование и проверка символов

• Float.h – работа с вещественными данными

• String.h – работа со строками символов

• Time.h – определение даты и времени

 

Количество стандартных заголовочных файлов в программе может быть неограниченно.

• Определение стандартных заголовочных файлов происходит в начале программы, т.к. препроцессор ищет системы каталога

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

 

<== предыдущая лекция | следующая лекция ==>
If используется для разветвления процесса обработки данных на два направления | Массивы, указатели и функции
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 573; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.