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

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


Каждая такая команда обязательно начинается со знака '#'. Всего таких команд немного:
Каждая такая команда обязательно начинается со знака '#'. Всего таких команд немного:
* '''#[[define]]''' - эта директива предусматривает определение [[макрос|макросов]] или препроцессорных [[идентификатор|идентификаторов]], простейшее применение это замены в тексте программы
* '''#[[define]]''' - эта директива предусматривает определение [[макрос|макросов]] или препроцессорных [[идентификатор|идентификаторов]], простейшее применение это замены в тексте программы
* '''#[[include]]''' - позволяет включать включать текст других фаилов в текст вашей программы.
* '''#[[include]]''' - позволяет включать текст других файлов в текст вашей программы.
* '''#[[undef]]''' - отменяет действие директивы #[[define]]
* '''#[[undef]]''' - отменяет действие директивы #[[define]]
* '''#[[if]]''' - организация условной обработки директив
* '''#[[if]]''' - организация условной обработки директив
Строка 36: Строка 36:
===Макросы===
===Макросы===


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

Версия от 10:45, 18 мая 2006

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

Каждая такая команда обязательно начинается со знака '#'. Всего таких команд немного:

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

Директива #define

Директива #include

Директива #undef

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

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

Директива #line

Директива #error

Директива #pragma

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

Макросы

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