Практичні зауваження

У файлі goto_tst.cpp

Інструкція goto

Інструкція goto — найбільш примітивний спосіб зміни нормального ходу виконання програми. Це безумовний перехід до довільної поміченої інструкції в тілі функції. У більшості робіт за сучасною методологією програмування інструкція goto розглядається як шкідлива конструкція, оскільки вона може зруйнувати усі корисні структури, що надаються іншими механізмами управління логікою виконання (for, while, do, if і switch).

Мітка — це ідентифікатор. При виконанні інструкції goto, що має вигляд

goto мітка;

управління безумовно переходить до поміченої інструкції. Ось приклад:

if (d = = 0.0)

goto error;

else

ratio = n / d;

………..

error: error << "ПОМИЛКА: Ділення на нуль!\n"';

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

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

Уникайте використання інструкції goto. Вона не так вже потрібна. Замість неї для передачі управління застосовуйте break, continue або assert, залежно від контексту. Фрагмент

//погано!

while (условие1){

if (условие2)

goto exit;

……..

}

exit:

рівнозначний

//краще

while (условие1){

if (условие2)

break;

…………

}

Застосовуйте інструкцію while замість інструкції for в тих випадках, коли при ітераціях змінна циклу не збільшується:

while (умова){

………..

}

прийнятніше, ніж

for '( ; умова; ){

…………..

}

Раджу не використовувати сучасну можливість оголошення локальної змінної в інструкції for, оскільки це може привести до помилки на старих системах.

Уникайте приведення типів, а там, де це необхідно, застосовуйте нові надійні перетворення, такі як static_cast<>.

У програмах на С директиви define використовуються для створення макро, що дозволяють уникнути накладних витрат на виклик функції. У C++ використовувати const і inline набагато прийнятніше, ніж «еквівалентні» макро define.