Новая версия MetaTrader 4 Client Terminal build 432 - страница 21

 
Renat:
Эксперт зацикленный был?

Да, зацикленный мультивалютник. Может меня память подводит... но вроде раньше я такого не замечал.
 
Mislaid:

init() задуман вовсе не для этого. Основная задача инициализировать окно (подокно).

"init() - функция, вызывающаяся в процессе инициализации модуля".(документация).

Окно и подокно тут не причем ибо код может работать и без инита.

 
Andrei01:

"init() - функция, вызывающаяся в процессе инициализации модуля".(документация).

Окно и подокно тут не причем ибо код может работать и без инита.


Не вижу противоречия!
 

вот еще баг компилятора с видимостью переменных. на распечатке будет func1:x=1, func2:x=0 хотя это та же самая переменная.

int x;

init(){
  func1(x);
}
//---------
void func1(int& x){
   
   x = 1;
   Alert("func1:x=",x);
   func2();
}
//---------
void func2(){
   
   Alert("func2:x=",x);
}
//---------

 
Andrei01:

вот еще баг компилятора с видимостью переменных. на распечатке будет func1:x=1, func2:x=0 хотя это та же самая переменная.

Правильно распечатывает. Ошибки нет.
 
Zhunko:
Правильно распечатывает. Ошибки нет.
переменная та же или нет?
 
Andrei01:
переменная та же или нет?
Приоритет за локальной переменной.
 
там нет локальной переменной, есть только одна глобальная.
 
Andrei01:
там нет локальной переменной, есть только одна глобальная.
Если внимательно посмотреть, то можно увидеть локальную. Имя параметра совпадает с именем глобальной. Параметр является локальной переменной.
 
 func1(int& x)

это называется передача внешней переменной по адресу, локальной переменной не создается. если бы было func1(int x), то тогда создается локальная переменная.

Причина обращения: