Си++/Препроцессорные директивы: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Строка 20: Строка 20:


Основная форма синтаксиса директивы #define:
Основная форма синтаксиса директивы #define:

#define идентификатор текст
''<nowiki>#</nowiki>define идентификатор текст''


Так например, в программе:
Так например, в программе:

#define chislo 5
''<nowiki>#</nowiki>define chislo 5
void main(void)
void main(void)
{
{
Строка 29: Строка 31:
a = chislo;
a = chislo;
}
}
''

Переменная а примет значение 5.
Переменная а примет значение 5.



Версия от 17:57, 7 августа 2006

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

Таких команд немного, они все начинаются со знака решётки (#) и должны быть в начале строки исходного кода:

#define
эта директива предусматривает определение макросов или препроцессорных идентификаторов, простейшее применение это замены в тексте программы
#include
позволяет включать текст других файлов в текст вашей программы.
#undef
отменяет действие директивы #define
#if
организация условной обработки директив
#ifdef
организация условной обработки директив
#else
организация условной обработки директив
#endif
организация условной обработки директив
#elif
организация условной обработки директив
#line
управление нумерацией строк в тексте программы
#error
задает текст диагностического сообщения, выводящиеся при наличии ошибок
#pragma
зависит от среды разработки
#
нулевая, или пустая, директива, бездейственно пропускается


Директива #define

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

Основная форма синтаксиса директивы #define:

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

Так например, в программе:

#define chislo 5 void main(void) {

int a;
a = chislo;

} Переменная а примет значение 5.

Директива #include

Директива #undef

Условные директивы #if, #ifdef, #else, #endif, #elif

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

Директива #line

Директива #error

Директива #pragma

Замены в тексте

Макросы

Предопределенные макроимена