На главную

Библиотека Интернет Индустрии I2R.ru

Rambler's Top100

Малобюджетные сайты...

Продвижение веб-сайта...

Контент и авторское право...

Забобрить эту страницу! Забобрить! Блог Библиотека Сайтостроительства на toodoo
  Поиск:   
Рассылки для занятых...»
I2R » И2Р Программы » Программирование » C, C++

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

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

Директива #include

Строка
#include "имя файла"
Заменяет эту строку полным содержимым файла имя. файла. Если не указан путь то файл сначала ищется в директории исходного файла , затем в директории заданной в опциях компилятора(обычно директория Include).

Строка #include <имя файла>
Ищет файл только в директории заданной в опциях компилятора.

Директива #define

#define идентификатор строка символов
Заменяет все последующие вхождения идентификатора строкой символов. Пример:
#define A_NUMBER 100
int n=A_NUMBER;
n присвоится значение 100


#define можно применять также для определения макросов, например:
#define SWAP(a,b) temp=(a);(a)=(b);(b)=temp
Подробнее о #define (и в частности о макросах) будет отдельная статья.

Директива #undef

#undef идентификатор
Отменяет прероцессорное определение идентификатора.

Директивы #if #else #endif

#if выражение
.....
#endif

Проверяет истинно ли выражение и если истинно, то выполняет все последующие строки до директивы #endif.

Конструкция типа:
#if выражение
....
#else
...
#endif
Проверяет выражение, если оно истинно то выполняются строки между #if и #else а если ложно то между #else и #endif.

Директивы #ifdef #ifndef

#ifdef идентификатор
.....
#endif

Проверяет определен ли идентификатор в препроцессоре в данный момент(директивой #define) и если определен, то выполняет все последующие строки до директивы #endif.

#ifndef идентификатор
.....
#endif
Наоборот, выполняет все последующие строки до директивы #endif если идентификатор не определен в препроцессоре в данный момент.

Директива #error

#error - сообщение об ошибке. Останавливает работу компилятора и выдает сообщение об ошибке. Например:
#ifndef smth_important
#error smth important isn't defined
#endif


Компилятор выдаст что-то типа:
Fatal F1003 file.cpp 2: Error directive: smth important isn't defined
*** 1 errors in Compile ***

Директива #line

Директива
#line константа "имя файла" Заставляет компилятор считать, что константа задает номер следующей строки исходного файла, и текущий входной файл именуется идентификатором. Если идентификатор отсутствует, то запомненное имя файла не изменяется.

Директива #pragma

#pragma - это директива препроцессора, которая реализует возможности компилятора. Эти особенности могут быть связанны с типом компилятора.Разные типы компиляторов могут поддерживать разные директивы. Общий вид директивы:
#pragma команда компилятора

Например:
#pragma message("сообщение") - просто выдает сообщение при компиляции.

А. Согомонян
Азбука Технологий Программирования

Другие разделы
C, C++
Java
PHP
VBasic, VBS
Delphi и Pascal
Новое в разделе
Базы данных
Общие вопросы
Теория программирования и алгоритмы
JavaScript и DHTML
Perl
Python
Active Server Pages
Программирование под Windows
I2R-Журналы
I2R Business
I2R Web Creation
I2R Computer
рассылки библиотеки +
И2Р Программы
Всё о Windows
Программирование
Софт
Мир Linux
Галерея Попова
Каталог I2R
Партнеры
Amicus Studio
NunDesign
Горящие путевки, идеи путешествийMegaTIS.Ru

2000-2008 г.   
Все авторские права соблюдены.
Rambler's Top100