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

Void main(int argc, char *argv[], char *env[])

{

while (*env)

cout << *env++ << endl;

}

Як бачите, програма просто виконує цикл по елементах масиву env, до поки не зустріне вказівник NULL, який вказує на останній запис масиву. Якщо відкомпілювати і виконати цю програму, то будуть виведені на монітор змінні середовища, як показано нижче:

С:\> SHOWENV <ENTER>

ТЕМР=С: \ WINDOWS \TEMP

PROMPT=$p$g

COMSPEC=C:\ WINDOWS\COMMAND.COM

PATH=C:\WINDOWS;С:\DOS

37. Використовування констант і макрокоманд

C++ підтримує іменовані константи і макрокоманди. Таким чином при написанні програм є можливість замінювати цифрові значення і вирази на іменовані та смислові константи, що покращує сприйняття тексту самої програми. Наприклад, якщо у програмі замінити цифрове значення 50 на CLASS_SIZE, тоді інші програмісти переглядаючи текст програми і зустрічаючи кожного разу CLASS_SIZE розуміють, що це значення відповідає числу студентів у класі. Аналогічно, використовуючи макрокоманди, можна замінити складні арифметичні вирази типу:

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

викликом функції з ім'ям CUBE, як показано нижче:

result = CUBE(x*y-3);

В цьому випадку макрокоманда не тільки полегшує читання самої програми, але і спрощує оператор, зменшуючи вірогідність помилки.

Використання у програмі іменованих констант замість цифрових значень, дозволяє досить легко змінювати її у майбутньому.

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

Макрокоманди виконуються швидше, ніж функції, але збільшують розмір виконуваної програми.

Більшість компіляторів C++ має наперед визначені константи і макрокоманди, які ви можете використовувати в своїх програмах.

Використовування іменованих констант

Іменована константа - це просто ім'я, якому ви присвоюєте постійне значення (константу). Така константа на відміну від значення змінної не може змінюватися в процесі виконання програми. Створюється іменована константа, директивою препроцесора #define (спеціальна інструкція для компілятора). Наприклад, наступний оператор означує іменовану константу CLASS_SIZE як значення 50:

#define CLASS_SIZE 50

Щоб відрізнити іменовану константу від змінної, більшість програмістів використовують для іменованих констант букви верхнього регістра. Наприклад, наступна програма CONSTANT.CPP означує і виводить іменовану константу CLASS_SIZE:

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

Void main(void)

{

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

}

Як бачимо, програма означила константу, використовуючи директиву #define на початку тексту програми.

Зауваження: Попереднє визначення константи не закінчується крапкою з комою. Якщо ви поставите крапку з комою в кінці визначення, препроцесор включить її у ваше визначення, тобто надалі кожний екземпляр константи CLASS_SIZE буде замінено значенням 50 з крапкою з комою (50;), що, дуже вірогідно, приведе до синтаксичної помилки.

C++ дозволяє використовувати в іменованих константах не тільки цифрові значення. У них можна зберігати і символьні рядки та значення з плаваючою крапкою. Наприклад, наступна програма BOOKINFO.CPP за допомогою директиви #define створює три константи, що містять інформацію про книжку:

#define TITLE "Вчимося програмувати мовою C++"

#define LESSON 37

#define PRICE 22.95