一个MQL4新手的问题。
void函数在MQL4中所能做的限制是什么?
我的意思是void函数代码可以做什么,什么不能做?
发布于 2017-06-01 15:50:11
"void“只意味着这种函数没有返回值。因此,“返回值”不能由void函数完成。
希望能帮上忙..。
发布于 2017-06-02 15:39:09
你可以把所有的东西放在一个void函数中,你可以把它放入一个double,int,string,bool,.函数。更改的是函数返回的变量类型。
例如,下面的int函数返回两个值的和。
int sum( int a, int b )
{
return( a + b );
}您可以将此函数转换为void函数,而不是返回值,您可以将该值打印到控制台。
void printsum( int a, int b )
{
Print( a + b );
}在后续回答中,您将询问如何创建一个void函数,该函数可以对移动平均值进行一些操作。下面的void函数将接受不同的时间段作为输入,并打印MA。函数不能直接返回任何值(除非通过引用使用全局变量/传递变量),但它仍然可以接受值并根据这些值执行操作。
void PrintMA( int period )
{
Print( iMA( NULL, 0, period, 8, MODE_SMMA, PRICE_MEDIAN, 1 ) );
}后续答案中的int函数只返回0,因此您可以将其交换为void函数并删除return(0),它将一如既往地工作。只需首先更改函数名,因为start是一个应该避免使用的函数名。
如果您阅读编译日志,您将能够了解为什么您的上述答案不能编译。
发布于 2017-06-01 20:15:18
void function(...)唯一不能做的事情就是永远参与MQL4赋值语句,即:
someVariable = aVoidDeclaredFUNCTION();除了这个,一个人可以做任何可以想象的事情。
这怎么可能有用?
void aVoidDeclaredFUNCTION( const int thisParameterWillNeverChangeItsVALUE,
int &thisParameterWillBeAbleToChangeVALUE
){...}用一种技术按值传递,重传。要传递引用( &passVariableByREF ),即使是void function(...)也可以处理和“返回”-results,如果还不足以导致void function(...){...}主体中的某些操作,就其本身而言。
https://stackoverflow.com/questions/44311498
复制相似问题