Вопросы общего характера

 

Разъясните мне пожалуйста (гугол не смог помочь). Что значат эти предупреждения:

1. declaration of 'MaShift' hides global declaration at line 12    (Объявление «MaShift» скрывает глобальную декларацию в строке 12)

2. variable 'MaPeriod' not used    (Переменная «MaPeriod» не используется)

3. expression not boolean    (Выражение не булево)

4. empty controlled statement found    (Пустое управляемое заявление найдено)

 
Игорь:

Разъясните мне пожалуйста (гугол не смог помочь). Что значат эти предупреждения:

1. declaration of 'MaShift' hides global declaration at line 12    (Объявление «MaShift» скрывает глобальную декларацию в строке 12)

2. variable 'MaPeriod' not used    (Переменная «MaPeriod» не используется)

3. expression not boolean    (Выражение не булево)

4. empty controlled statement found    (Пустое управляемое заявление найдено)


1. Переменная объявлена на глобальном уровне и с таким же именем в функции.

2. Переменная объявлена, но ни где не используется.

3. Неправильное выражение в условии проверяемом if'ом.

4. У меня ни разу не было.

 
Dmitry Fedoseev:

1. Переменная объявлена на глобальном уровне и с таким же именем в функции.

2. Переменная объявлена, но ни где не используется.

3. Неправильное выражение в условии проверяемом if'ом.

4. У меня ни разу не было.

 
Игорь:
double iMA=(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах

extern int MaPeriod=21;
extern int MaShift =3;
extern double lots=0.01;
extern int Slippage=5;
 
Игорь:

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах


Посмотрите, нет ли еще где объявления MaShift.

 
Игорь:

Тогда я не пойму, в чём тут косяк?

При этом у меня в параметрах

Судя по этой строке

double iMA=(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);

это mql4.

Так написать можно только после трёх суток работы без перерывов на обед и сон. Поэтому и предупреждение

Игорь:

3. expression not boolean    (Выражение не булево)

Должно быть так

double ima = iMA(Symbol(),0,MaPeriod,MaShift,MODE_SMA,PRICE_CLOSE,1);
 
Игорь:
 

4. empty controlled statement found    (Пустое управляемое заявление найдено)

Это значит, что после условия цикла или ифа - стоит точка с запятой, и компилятор удивляется - тебе ничего не надо в этом цикле или ифе делать ?

Весьма нужное предупреждение, чаще всего эта самая точка с запятой - лишние. (Но, бывают случаи, когда вся работа выполняется прямо в заголовке цикла, и тело цикла и правда, должно быть пустым.
 

Интересный стиль написания кода ))  компилятор аж сконфузился и решил выдать все ошибки сразу

 
Все те 4 "ошибки" на самом деле "предупреждения" (warning)

Программа компилируется не смотря на их существование, но хорошо если их не было.

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

Кстати вот пример о "empty controlled statement" :

if ( true )  ;
 
ох  #property strict  вам в помощ, ошибок у них нету, ага щас разбежались ))), надо всем по дефолту под #property strict писать а не абы как лишь бы компилилось
 
Где найти программера для создания сайта и примерные расценки? Только не одно страничный...
Причина обращения: