Операция ++ прибавляет 2-ку

 

Столкнулся с таким моментом: Операция ++ прибавляет 2-ку.

Убил какое-то время, ища повторное случайное прибавление 1-цы (код более 500 строк). Потом заменил А++ на А=А+1, и ошибка ушла.

В моем случае А - глобальная переменная эксперта.

Хотелось бы понять причину этого явления. 

 

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.

 
Mathemat:

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.


А++;

т.е. никаких больше действий в одной строке.

И вылазит в тесте стратегии (может, тут какие глюки у МТ4?). В реале еще не пробовал. 

 
AKC:

Хотелось бы понять причину этого явления. 

Баг.
 

Баг - понятно ;)

Надо хотя-бы понять, где. Только с глобальными переменными? Только в тесте? Может, еще кто сталкивался?

А вообще разработчики еще поддерживают МТ4? Если да, то как до них донести инфу по багу?

 
AKC:

Столкнулся с таким моментом: Операция ++ прибавляет 2-ку.

Покажите пример кода.
 
Mathemat:

Скорее всего, Вы делаете что-то типа a++ + b или прочее шаманство.

В языке ничего окромя a++ делать нельзя, иначе проблемы.


а*=б+с

Так проблемы бывают? 

 
DmitriyN:
Покажите пример кода.


Весь, что-ли? ;)

вот фрагмент

   if (C>0)
   {
      Print(s);
      WriteLnToFile(handleMT, fileMT, s);
      countMT++;
//      countMT=countMT+1;
      countOrders=GetCountOrders();
      return(1);
   }
   else
   {
      Print("Не получилось выполнить "+s); 
   }

 правда, я его восстановил. И закомментил измененную строку.

Прикольно, что сейчас ошибка ушла. А вчера была.

Сегодня перезапускал МТ и  редактор кода.

 

Ну будем считать, что это мой локальный глюк, а не баг МТ.

Если повторится - буду внимательно все документировать. 

 
Наверно переменная объявлена без инициализации значением.
 
Integer:
Наверно переменная объявлена без инициализации значением.
Так в MT они вроде всегда инициализируются нулём?
Причина обращения: