Русский

Справочник MQL4 Основы языка Переменные Extern переменные

Extern переменные

Класс памяти extern определяет внешнюю переменную. Модификатор extern указывается перед типом данных.

//--- extern parameters
extern int            MA_Period=13;
extern int            MA_Shift=0;
extern ENUM_MA_METHOD MA_Method=MODE_SMMA;

Подобно input-переменным, extern-переменные также определяют входные параметры mql4-программы, они доступны из окна свойств. В отличии input-переменных, значения extern-переменных могут быть программно изменены в процессе работы программы. Внешние переменные всегда переинициализируются непосредственно перед вызовом OnInit().

Пример:

//--- строгий режим компиляции
#property strict
//--- режим показа входных параметров
#property script_show_inputs
//--- объявление extern и input-переменных
extern int ExtVar=1;   // extern переменная ExtVar
input  int InpVar=2;   // input переменная InpVar
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- выведем значения переменных ExtVar и InpVar
   PrintFormat("Extern=%d, Input=%d",ExtVar,InpVar);
//--- увеличим на единицу значение переменной ExtVar
   ExtVar++;
//--- попытка изменения input-переменной приведет к ошибке компиляции
//--- InpVar++;
//--- выведем значения переменных ExtVar и InpVar
   PrintFormat("Extern=%d, Input=%d",ExtVar,InpVar);
  }

В данном скрипте задан строгий режим компиляции с показом окна входных параметров, поэтому в поле Variable вместо наименований переменных ExtVar и InpVar показываются значения, заданные в строчных комментариях.

Extern-variables-strict-mode

Примечание: Массивы и переменные сложных типов не могут выступать в качестве extern-переменных.

Примечание: Длина строчного комментария для extern-переменных не может превышать 63 символа.

Смотри также

Input переменные, Типы данных, Инкапсуляция и расширяемость типов, Инициализация переменных, Область видимости и время жизни переменных, Создание и уничтожение объектов