Турбо отладчик (Turbo Debugger) 3.0

Здесь присваивание i значения


               }
            Здесь присваивание i значения 1 приводит к  усечению старших
        16 бит 1, при этом в i остается значение 0.
                        Использование точки с запятой
       -----------------------------------------------------------------
            Следующий фрагмент программы на первый взгляд выглядит прек-
       расно:
               for (x = 0; x < 10; x++);
               {
               ...             /* будет выполнено 1 раз */
               }
            Почему фрагмент в фигурных скобках будет выполнен  только  1
       раз?  При ближайшем рассмотрении оказывается, что в конце выраже-


       ния for содержится точка с запятой (;).  Это труднообнаруживаемая
       ошибка приводит к тому,  что цикл выполниться 10 раз, не реализуя
       никаких действий.  Последующий блок выполниться только 1 раз. Это
       неприятная ошибка, так как ее нельзя обнаружить с помощью обычных
       методов проверки и идентификации блоков программы.
                     Макрокоманды с побочными эффектами
       -----------------------------------------------------------------
            Следующая проблема  может заставить вас никогда не использо-
       вать макрокоманды #define:
               #define toupper(c) 'a'<= (c)&&(c)<='z' ? (c)-'a'-'A': (c)
               char c, *p;
               c = toupper(*p++);
            Здесь p увеличивается 2 или 3 раза, в зависимости от регист-
       ра символа  (строчная  или  прописная буква).  Такую ошибку очень
       трудно найти, так как побочный эффект скрыт внутри макроопределе-
       ния.
              Повторение имен локальных динамических переменных
       -----------------------------------------------------------------

       TDeb 3.0 #2-3               = 130 =
            Следующую ошибку также трудно обнаружить:
               myfunc()
               {
                       int n;
                       for (n=5; n >= 0; n--)
                       {

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