Помогите убрать предупреждения

 

При компиляции выдает вот такие предупреждения

possible use of uninitialized variable 'dist' 3123.mq4 28 109

possible use of uninitialized variable 'shag' 3123.mq4 37 111

possible use of uninitialized variable 'dist' 3123.mq4 72 109

possible use of uninitialized variable 'shag' 3123.mq4 81 110

Подскажите пожалуйста в какую сторону глядеть... ведь эти переменные объявленны


            
Файлы:
3123.mq4  6 kb
 

Наверное проще будет заменить

 if      (Digits==3 || Digits==5){dist=Dist_to_function*10*Point;    shag=Shag_to_function*10*Point;}
     else if (Digits==2 || Digits==4){dist=Dist_to_function*Point;       shag=Shag_to_function*Point;}

на

 if      (Digits==3 || Digits==5){dist=Dist_to_function*10*Point;    shag=Shag_to_function*10*Point;}
     else{dist=Dist_to_function*Point;       shag=Shag_to_function*Point;}
 
prt:


Подскажите пожалуйста в какую сторону глядеть... ведь эти переменные объявленны


При объявлении переменной надо присвоить ей значение:

int x=0;

 
Integer:


При объявлении переменной надо присвоить ей значение:

int x=0;

Если она не глобальная.
 
eevviill:
Если она не глобальная.


Той, по которой компилятор выдает предупреждение.
 

Чтобы было понятней давайте расшифруем всё по-порядку

#property strict

void Trailing(int Magic_to_function, string Symbol_Curent ,int Dist_to_function, int Shag_to_function, bool Isp_shag, bool Bezubitok)
{  
     double dist; 
     double shag;
     
     if      (Digits==3 || Digits==5){dist=Dist_to_function*10*Point;    shag=Shag_to_function*10*Point;}
     else if (Digits==2 || Digits==4){dist=Dist_to_function*Point;       shag=Shag_to_function*Point;}

1. Объявили переменные без явной инициализации

2. Присваивается значение этим переменным только при условии 1 или 2

Соответственно в случае не выполнения этих условий переменные так и останутся не инициализированными... О чём и предупреждает компилятор.

Я-бы написал так, учитывая что это, как мне кажется, для мультивалютника...

#property strict

void Trailing(int Magic_to_function, string Symbol_Curent ,int Dist_to_function, int Shag_to_function, bool Isp_shag, bool Bezubitok)
{
     double sp = MarketInfo(Symbol_Curent, MODE_POINT);
     double dist = Dist_to_function*sp; 
     double shag = Shag_to_function*sp;
     
     if(Digits == 3 || Digits == 5) // или лучше if(Digits % 2 == 1)
      {
       dist = Dist_to_function*10*sp;
       shag = Shag_to_function*10*sp;
      }
// и дальше по тексту
}
 
Alexey Viktorov:

Чтобы было понятней давайте расшифруем всё по-порядку

1. Объявили переменные без явной инициализации

2. Присваивается значение этим переменным только при условии 1 или 2

Соответственно в случае не выполнения этих условий переменные так и останутся не инициализированными... О чём и предупреждает компилятор.

Я-бы написал так, учитывая что это, как мне кажется, для мультивалютника...



Спасибо огромное добрый человек!)

 
Alexey Viktorov:

Чтобы было понятней давайте расшифруем всё по-порядку

1. Объявили переменные без явной инициализации

2. Присваивается значение этим переменным только при условии 1 или 2

Соответственно в случае не выполнения этих условий переменные так и останутся не инициализированными... О чём и предупреждает компилятор.

Я-бы написал так, учитывая что это, как мне кажется, для мультивалютника...

Спасибо огромное в 2021 году!!!
 

 Подскажите в чём ошибка? не запоминает переменные: price_osnova_buy_1 , price_osnova_buy_2, price_osnova_sell_1 , price_osnova_sell_2 ,


***
 
Чтобы запоминало переменные, они должны быть объявлены глобально вне тел функций, на самом верху.
 
02031986dima:

 Подскажите в чём ошибка? не запоминает переменные: price_osnova_buy_1 , price_osnova_buy_2, price_osnova_sell_1 , price_osnova_sell_2 ,


***

Пожалуйста вставляйте код правильно -  Правильно вставляем код на форуме

Ответы новичкам в картинках
Ответы новичкам в картинках
  • 2014.04.29
  • www.mql5.com
В этой теме будут ответы в картинках. Размер рисунка 640*480...
Причина обращения: