Скачать MetaTrader 5

помогите с функцией

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vovander
44
Vovander  

Не могу понять в чем проблема. Есть функция, без параметров которая обнуляет переменные

int init()

{

     f_reset_var()

return(0);

}

находится она вне других функций.

f_reset_var()

{

a = 0;

b = 0;

и т.д

return;

}

После компиляции, появляеться следующее сообщение ("expression on global scope not allowed")

Что ей еще надо? может точки с запятой, скобки или в головной части чтото дописать. Помогите пожалуйста. Где обявить? Как вызвать?

Дмитрий
1460
Дмитрий  
int init()

{

f_reset_var()

return(0);

}



int f_reset_var()

{

a = 0;

b = 0;

и т.д

return();

}
i
Mikhail Kozhemyako
1270
Mikhail Kozhemyako  
vovander:

Не могу понять в чем проблема. Есть функция, без параметров которая обнуляет переменные

int init()

{

     f_reset_var()

return(0);

}

находится она вне других функций.

f_reset_var()



После   f_reset_var() в Init поставтьте ; -   f_reset_var();
Vovander
44
Vovander  

спасибо, уже лучше, но теперь появляеться сообщение ("wrong parameters count")

int init()
  {
//----
   f_reset_var();

//----
   return(0);
  }
Basil Pushkarev
138
Basil Pushkarev  
vovander:

спасибо, уже лучше, но теперь появляеться сообщение ("wrong parameters count")


Наверное, раз int f_reset_var(), тогда функции нужно вернуть какое-нибудь целочисленное значение. Если ничего не возвращает, попробуйте тип void поставить.
keekkenen
1135
keekkenen  
vovander:

спасибо, уже лучше, но теперь появляеться сообщение ("wrong parameters count")



у вас

return();

в скобках должно быть значение

Vovander
44
Vovander  
void не сработало. добавил int a, теперь работает. спасибо
Vovander
44
Vovander  
еще просьба, не понимаю в чем проблема
    f_lock_open_buy_sell(i_buy = 0, i_sell = 1); //

//---------------------------------------------

int f_lock_open_buy_sell(int i_buy; int i_sell)
   {
      lock_open_buy = i_buy;                 //
      lock_open_sell = i_sell;               //

   return(a);
   }

если между параметрами в самой ф-ции ставлю ; то пишет "comma expected"

если ставлю запятую тогда "'=' - illegal assignment used"

Vovander
44
Vovander  
vovander:
еще просьба, не понимаю в чем проблема

если между параметрами в самой ф-ции ставлю ; то пишет "comma expected"

если ставлю запятую тогда "'=' - illegal assignment used"



добавил в параметры int a пишет тоже самое. Может нельзя присваивать 0 и 1 переменным i_buy, i_sell
Boris
3953
Boris  
vovander:
еще просьба, не понимаю в чем проблема

если между параметрами в самой ф-ции ставлю ; то пишет "comma expected"

если ставлю запятую тогда "'=' - illegal assignment used"

Вы вместо запятой, поставили точку с запятой:

    f_lock_open_buy_sell(i_buy = 0, i_sell = 1); //

//---------------------------------------------

int f_lock_open_buy_sell(int i_buy; int i_sell)//тут не должно быть точки с запятой
   {
      lock_open_buy = i_buy;                 //
      lock_open_sell = i_sell;               //

   return(a);
   }
Mislaid
601
Mislaid  
vovander:
еще просьба, не понимаю в чем проблема

если между параметрами в самой ф-ции ставлю ; то пишет "comma expected"

если ставлю запятую тогда "'=' - illegal assignment used"

Вы бы на номер строки ошибки посмотрели.

  •  "если между параметрами в самой ф-ции ставлю ; то пишет "comma expected" " - относится к
int f_lock_open_buy_sell(int i_buy; int i_sell)
  • а, "illegal assignment used" , к
   f_lock_open_buy_sell(i_buy = 0, i_sell = 1); //

Интерпретатор проводит несколько видов проверки кода. На первом проходе проверяется синтаксис - соответствие кода конструкции языка. "comma expected" относится к синтаксису. Если вы поставите свою запятую, тогда код успешно проходит анализ синтаксиса. Теперь, если успешно прошла проверка синтаксиса, только тогда мы переходим к анализу использования допустимых выражений в конструкциях языка. Именно этот этап и не катит.

Ожидалось

    f_lock_open_buy_sell( 0, 1); //

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий