Всем привет. Выручайте! Плиз!

 

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

 
Putevod:

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

можно не обращать внимания, но если хотите, вот формат этой функции:

iMA(string Symbol,...)

поэтому указывая на текущий символ надо было бы указывать пустую строку таким вот макаром NULL.

NULL - собственно и есть нуль, но компилятор вас предупреждает, что тут надо бы вообще-то писать NULL,

а не нуль. 

 
Огроменное тебе СПАСИБО!!! Я так замучался, так нервничал, я даже ругался с ним... Выручил! Все заработало!!!!
 
Putevod:
В следующий раз, прежде чем мучаться, попробуйте прочитать документацию)) Выделяете интересующее слово в редакторе и нажимаете F1.
 
more:

можно не обращать внимания, но если хотите, вот формат этой функции:

iMA(string Symbol,...)

поэтому указывая на текущий символ надо было бы указывать пустую строку таким вот макаром NULL.

NULL - собственно и есть нуль, но компилятор вас предупреждает, что тут надо бы вообще-то писать NULL,

а не нуль. 

И мои 5 центов, NULL означает не арифметический ноль, а тип void. В случае со строкой пустая строка.
 
VDev:
И мои 5 центов, NULL означает не арифметический ноль, а тип void. В случае со строкой пустая строка.

+мой 1 цент. NULL - это неопределенное значение (значение неизвестно, некорректно или неприемлемо). Тип void - это все таки тип данных, а не значение.

Также существует разница: пустая строка = "", не есть NULL, т.к. указатель на пустую строку может существовать, а NULL - это отсутствие указателя.

 
А разве не грамотнее например так: iMA(_Symbol,_Period,13,0,MODE_SMA,PRICE_CLOSE); ?
 
elugovoy:

+мой 1 цент. NULL - это неопределенное значение (значение неизвестно, некорректно или неприемлемо). Тип void - это все таки тип данных, а не значение.

Также существует разница: пустая строка = "", не есть NULL, т.к. указатель на пустую строку может существовать, а NULL - это отсутствие указателя.

Ну тогда еще 100500 долларов - ну нет в MQL4 указателей, нет и все ))) Есть дескрипторы. И чтобы не спорить, читаем хелпы, они рулез ))

Тип void и константа NULL

Синтаксически тип void является фундаментальным типом наравне с типами char, uchar, bool, short, ushort, int, uint, color, long, ulong, datetime, float, double и string. Этот тип используется либо для указания того, что функция не возвращает значения, либо в качестве параметра функции обозначает отсутствие параметров.

Предопределенная константная переменная NULL имеет тип void. Она может быть присвоена переменным любых других фундаментальных типов без преобразования. Также допускается сравнение переменных фундаментальных типов со значением NULL

Пример:

//--- если строка не инициализирована, то присвоим ей наше предопределенное значение
if(some_string==NULL) some_string="empty";

Также NULL можно сравнивать с указателями на объекты, созданные при помощи оператора new

 
VDev:


Предопределенная константная переменная NULL имеет тип void.

 

Из того, что константа NULL имеет  тип void абсолютно не следует, что:

 

VDev:
 NULL означает не арифметический ноль, а тип void.

 

---

 

Понимаете?  NULL не означает тип void, так же как 5 не означает тип int.

 
... спор тупоконечников с остроконечниками...
 

Putevod:

Хотел было простецкий советник написать, но строчка:

ma0=iMA(0,0,13,0,MODE_SMA,PRICE_CLOSE,0);

мозг вынесла. Дает предупреждение неявного преобразования из "number" в "string" и указывает на первую скобку. 

Че это такое, может кто подскажет??? 

 

ma0=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0);

 

Причина обращения: