Определение констант с помощью #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 мы с вами также создавали макросы.
Читайте также
- Директивы препроцессора
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах