Определение констант с помощью #define
Оператор #define в C++ часто используют для определения символических констант. Он может появиться в любом месте исходного файла, а даваемое им определение имеет силу, начиная с места появления и до конца файла.
Пример 1
# define min 1 # define max 100
В тексте программы вместо констант 1 и 100 можно использовать соответственно min и max.
Пример 2
#include <iostream> using namespace std; #define NAME "Vasya Pupkin." void main () { cout << " My name is " << NAME; } Результат работы: My name is Vasya Pupkin.
Так что, после макроопределения #define YES 1
в операторе cout « "YES";
не будет сделано никакой макроподстановки.
Замены в тексте можно отменять с помощью команды:
#undef <имя>
После выполнения такой директивы имя для препроцессора становится неопределенным и его можно определять повторно. Например, не вызовут предупреждающих сообщений директивы:
#define M 16 #undef M #define M 'C' #undef M #define M "C"
Директиву #undef удобно использовать при разработке больших программ, когда они собираются из отдельных "кусков текста", написанных в разное время или разными программистами. В этом случае могут встретиться одинаковые обозначения разных объектов. Чтобы не изменять исходных файлов, включаемый текст можно "обрамлять" подходящими директивами #define - #undef и тем самым устранять возможные ошибки. Например:
. . . . .
A = 10; //Основной текст. . . . . . #define A X . . . . . A = 5; //Включенный текст. . . . . . #undef A . . . . . B = A; //Основной текст. . . . . .
При выполнении программы B примет значение 10, несмотря на наличие оператора присваивания A=5; во включенном тексте.
Если строка_лексем оказывается слишком длинной, то ее можно продолжить в следующей строке текста программы. Для этого в конце продолжаемой строки помещается символ "\". В ходе одной из стадий препроцессорной обработки этот символ вместе с последующим символом конца строки будет удален из программы. Например:
#define STROKA "\n Multum, non multa - \
mnogoe, no nemnogo!" . . . . . cout << STROKA; . . . . .
На экран будет выведено:
Multum, non multa - mnogoe, no nemnogo!
Напоминаем вам, что с помощью директивы #define мы с вами также создавали макросы.
Читайте также
- Директивы препроцессора

Friendhosting - Разумные цены на хостинг
VDS/VPS сервер от 3.49€ в месяц. Много ресурсов. Высокая надежность. Гибкое управление. Удобная оплата. Настройка под вас!
friendhosting.net
Антидетект браузер Dolphin{anty} бесплатно до 10 профилей
Dolphin разработан для работы с такими сложными ресурсов, как Google, Facebook и Coinlist.
Английский для IT‑специалистов по Skype
Персональные занятия по разумным ценам. 80% разговорной практики. Персональный график!
skyeng.ru