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