- •Использование аргументов командной строки
- •Доступ к argv и argc
- •Выполнение цикла, пока argv не содержит null
- •Трактовка argv как указателя
- •Использование аргументов командной строки
- •Доступ к переменным среды операционной системы
- •Использование констант и макрокоманд
- •Использование именованных констант
- •Использование именованных констант для упрощения изменения кода
- •Замена выражений макрокомандами
- •Чем макрокоманды отличаются от функций
Использование констант и макрокоманд
Чтобы улучшить читаемость программы, 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++ не ограничивает вас в использовании только цифровых значений. Также допустимо использовать константы для хранения символьных строк и значений с плавающей точкой.