Нужен совет толкового программиста!!!

 

Здравствуйте. Очень нужен совет. Пишу на MQL4. Столкнулся с проблемой, сути которой понять не могу.

Ситуация следующая. Объявляю гловальные переменные:

extern double A=60;
extern double B=50;
extern double C=110;

Затем - локальные с присваиванием им значений глобальных:

static double A1=A;
static double A2=A;
static double B1=B;
static double B2=B;
static double C1=C;
static double C2=C;

Получаю сообщение об ошибке: "ожидается инициализация" переменных A,B,C.

Т.е. объявление глобальных переменных не является инициализацией?!!

 

Где у вас находяться глобальные, а где локальные приведите пример с кодом, а то знаете все медиумы нынче в отпуске. код размещается нажав кнопочку "SRC"

 
nys2000:

Здравствуйте. Очень нужен совет. Пишу на MQL4. Столкнулся с проблемой, сути которой понять не могу.

Ситуация следующая. Объявляю гловальные переменные:

extern double A=60;
extern double B=50;
extern double C=110;

Затем - локальные с присваиванием им значений глобальных:

static double A1=A;
static double A2=A;
static double B1=B;
static double B2=B;
static double C1=C;
static double C2=C;

Получаю сообщение об ошибке: "ожидается инициализация" переменных A,B,C.

Т.е. объявление глобальных переменных не является инициализацией?!!

вы выполняете команду "присваивание", а в разделе объявления переменных выполняется только "инициализация"

то есть в разделе объявления переменных инициализировать можно только конкретным значением, а не значением взятым у другой переменной

 
nys2000:

Т.е. объявление глобальных переменных не является инициализацией?!!

Глобальные и статические переменные могут быть проинициализированы только константой соответствующего типа. Локальные переменные могут быть проинициализированы любым выражением, а не только константой.

Читайте документацию.

 
xrust:

Где у вас находяться глобальные, а где локальные приведите пример с кодом, а то знаете все медиумы нынче в отпуске. код размещается нажав кнопочку "SRC"


//--------------------------------------------------------------------
//21/11/2010
//nys_work_8_v1.mq4

extern double A=60;
extern double B=50;
extern double C=110;

static double A1=A;
static double A2=A;
static double B1=B;
static double B2=B;
static double C1=C;
static double C2=C;

init()

{

}

start()

{

}

int openorder()

{

}

Это схематично, чтоб не засорять эфир. Переменные обрабатываются функцией openorder().

 
PapaYozh:

Глобальные и статические переменные могут быть проинициализированы только константой соответствующего типа. Локальные переменные могут быть проинициализированы любым выражением, а не только константой.

Читайте документацию.


Спасибо. Сработало.
 
nys2000:


//--------------------------------------------------------------------
//21/11/2010
//nys_work_8_v1.mq4

extern double A=60;
extern double B=50;
extern double C=110;

static double A1=A;
static double A2=A;
static double B1=B;
static double B2=B;
static double C1=C;
static double C2=C;

init()

{

}

start()

{

}

int openorder()

{

}

Это схематично, чтоб не засорять эфир. Переменные обрабатываются функцией openorder().

Здесь они все глобальные
Причина обращения: