Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Использование аргументов командной строки.doc
Скачиваний:
1
Добавлен:
14.11.2019
Размер:
72.19 Кб
Скачать

Использование констант и макрокоманд

Чтобы улучшить читаемость программы, C++ поддерживает именованные константы и макрокоманды. Например, используя именованную константу, можно заменить цифровое значение, такое как 50, внутри исходного кода смысловой константой, такой как CLASS_SIZE. Когда другой программист читает код, он не сможет предположить, что означает цифровое значение 50. Если же вместо этого он каждый раз будет видеть СLASS_SIZE, то поймет, что это значение соответствует числу студентов в классе. Аналогично, используя макрокоманды, программы могут заменить сложные выражения типа

result = (х*у-3) * (х*у-3) * (х*у-3);

вызовом функции с именем CUBE, как показано ниже:

result = CUBE(x*y-3);

В данном случае макрокоманда не только улучшает читаемость кода, но и упрощает оператор, уменьшая вероятность ошибки. Ниже именованные константы и макрокоманды рассматриваются более подробно.

Основные концепции:

  • Чтобы сделать программы легче для чтения, цифровые значения часто заменяются более понятными по смыслу именованными константами.

  • Используя именованные константы в программе вместо цифровых значений, можно сделать программы более легкими для изменения в будущем.

  • C++ позволяет программам заменять выражения смысловыми именами макрокоманд.

  • До компиляции программы компилятор C++ запускает специальную программу, называемую препроцессором, чтобы заменить каждую константу или макрокоманду соответствующим значением.

  • Макрокоманды выполняются быстрее, чем функции, но увеличивают размер выполняемой программы.

  • Большинство компиляторов C++ имеют предопределенные константы и макрокоманды, которые вы можете использовать в своих программах.

Использование именованных констант

Именованная константа — это просто имя, которому присваивается постоянное значение (константа). Такая константа в отличие от значения переменной не может изменяться по мере выполнения программы. Именованная константа создается с использованием директивы препроцессора #define (специальной инструкции для препроцессора компилятора). Например, следующий оператор определяет именованную константу CLASS_SIZE как значение 50:

#define CLASS_SIZE 50

Чтобы отличить именованную константу от переменной, большинство программистов используют для именованных констант буквы верхнего регистра. Например, следующая программа CONSTANT.CPP определяет и выводит именованную константу CLASS_SIZE:

#include <iostream.h>

#define CLASS_SIZE 50 // Число студентов в классе

void main(void)

{    cout << "Константа CLASS_SIZE равна " << CLASS_SIZE << endl; }

Эта программа определяет константу, используя директиву #define в начале исходного кода. После того как константа определена, ее значение можно использовать на протяжении всей программы, просто обращаясь к имени значения константы.

Замечание: Предыдущее определение константы не заканчивается точкой с запятой. Если поставить точку с запятой в конце определения, препроцессор включит ее в определение. Например, если в директиве #define предыдущей программы поставить точку с запятой после значения 50, препроцессор в дальнейшем каждый экземпляр константы CLASS_SIZE заменит значением 50 с точкой с запятой (50;), что, очень вероятно, приведет к синтаксической ошибке.

При определении констант в программах C++ не ограничивает вас в использовании только цифровых значений. Также допустимо использовать константы для хранения символьных строк и значений с плавающей точкой.