КАТЕГОРИИ: Архитектура-(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-я форма записи директивы), то вначале препроцессор просматривает текущий каталог пользователя и только затем обращается к просмотру стандартных системных каталогов.
Дата добавления: 2014-01-15; Просмотров: 573; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |