Правила программирования на Си и Си++

Рассчитывайте на невозможное


Оператор switch всегда должен иметь предложение с ключевым словом default для ситуации по умолчанию, особенно если эта ситуация не должна возникать:

f( int i )    // переменная i должна иметь значение 1 или 2.

{

    switch( i )

    {

    case 1: сделать_нечто();          break;

    case 2: сделать_нечто_другое();   break;

    default:

        fprintf(stderr, "Внутренняя ошибка в f(): неверное

                         значение i (%d)", i );

    exit( -1 );

    }

}

То же самое относится к блокам if/else, работающим в манере, схожей с оператором switch.

В цикле также нужна проверка на невероятное. Следующий фрагмент работает, даже если i первоначально равно 0

чего по идее быть не должно:

f( int i )    // переменная i должна быть положительной

{

    while ( --i = 0 )

        сделать_нечто();

}

Конструкция while(--i)

менее надежна, так как она дает ужасный сбой в случае, если i

сначала равно 0.



Содержание раздела