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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
мНет описания правки
Нет описания правки
Строка 1: Строка 1:
[[w:Препроцессор|Препроцессор]] входит в любой [[w:компилятор|компилятор]] программ на [[w:Си++|Си++]] и любую [[w:среда разработки|среду разработки]], рассчитаную на этот язык. Препроцессор обрабатывает [[w:исходный код|исходный код]] программ до их компиляции. '''Препроцессорные команды''', или '''директивы''', управляют работой препроцессора.
Практически в любую [[среда разработки|среду разработки]] программ на [[С++]] или [[компилятор]] языка входит такой компонент, как [[препроцессор]].
Назначение препроцессора - это обработка исходного текста программ до её компиляции. Для управления этим компонентом и существуют так называемы препроцессорные директивы или, проще говоря, '''препроцессорные команды'''.


Таких команд немного, они все начинаются со знака решётки (<code>#</code>) и должны быть в начале строки исходного кода:
Каждая такая команда обязательно начинается со знака '#'. Всего таких команд немного:
* '''#[[define]]''' - эта директива предусматривает определение [[макрос|макросов]] или препроцессорных [[идентификатор|идентификаторов]], простейшее применение это замены в тексте программы
;<code>[[#Директива define|#define]]</code>:эта директива предусматривает определение [[w:макрос|макросов]] или препроцессорных идентификаторов, простейшее применение это замены в тексте программы
* '''#[[include]]''' - позволяет включать текст других файлов в текст вашей программы.
;<code>[[#Директива include|#include]]</code>:позволяет включать текст других файлов в текст вашей программы.
* '''#[[undef]]''' - отменяет действие директивы #[[define]]
;<code>[[#Директива undef|#undef]]</code>:отменяет действие директивы [[#Директива define|#define]]
* '''#[[if]]''' - организация условной обработки директив
;<code>[[#Условные директивы #if, #ifdef, #else, #endif, #elif|#if]]</code>:организация условной обработки директив
* '''#[[ifdef]]''' - организация условной обработки директив
;<code>[[#Условные директивы #if, #ifdef, #else, #endif, #elif|#ifdef]]</code>:организация условной обработки директив
* '''#[[else]]''' - организация условной обработки директив
;<code>[[#Условные директивы #if, #ifdef, #else, #endif, #elif|#else]]</code>:организация условной обработки директив
* '''#[[endif]]''' - организация условной обработки директив
;<code>[[#Условные директивы #if, #ifdef, #else, #endif, #elif|#endif]]</code>:организация условной обработки директив
* '''#[[elif]]''' - организация условной обработки директив
;<code>[[#Условные директивы #if, #ifdef, #else, #endif, #elif|#elif]]</code>:организация условной обработки директив
* '''#[[line]]''' - управление нумерацией строк в тексте программы
;<code>[[#Директива line|#line]]</code>:управление нумерацией строк в тексте программы
* '''#[[error]]''' - задает текст диагностического сообщения, выводящиеся при наличии ошибок
;<code>[[#Директива error|#error]]</code>:задает текст диагностического сообщения, выводящиеся при наличии ошибок
* '''#[[pragma]]''' - зависит от среды разработки
;<code>[[#Директива pragma|#pragma]]</code>:зависит от среды разработки
* '''[[#]]''' - нулевая(пустая) директива, ничего не вызывает и всегда игнорируется
;<code>#</code>:нулевая, или пустая, директива, бездейственно пропускается


===Директива #define===
===Директива #define===
Строка 37: Строка 36:


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

[[Категория:Программирование]]

Версия от 03:29, 19 мая 2006

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

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

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

Директива #define

Директива #include

Директива #undef

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

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

Директива #line

Директива #error

Директива #pragma

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

Макросы

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