首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MQL4中,void函数可以做什么?

在MQL4中,void函数可以做什么?
EN

Stack Overflow用户
提问于 2017-06-01 15:20:54
回答 4查看 2.8K关注 0票数 0

一个MQL4新手的问题。

void函数在MQL4中所能做的限制是什么?

我的意思是void函数代码可以做什么,什么不能做?

EN

回答 4

Stack Overflow用户

发布于 2017-06-01 15:50:11

"void“只意味着这种函数没有返回值。因此,“返回值”不能由void函数完成。

希望能帮上忙..。

票数 3
EN

Stack Overflow用户

发布于 2017-06-02 15:39:09

你可以把所有的东西放在一个void函数中,你可以把它放入一个doubleintstringbool,.函数。更改的是函数返回的变量类型。

例如,下面的int函数返回两个值的和。

代码语言:javascript
复制
int sum( int a, int b )
{
    return( a + b );
}

您可以将此函数转换为void函数,而不是返回值,您可以将该值打印到控制台。

代码语言:javascript
复制
void printsum( int a, int b )
{
    Print( a + b );
}

在后续回答中,您将询问如何创建一个void函数,该函数可以对移动平均值进行一些操作。下面的void函数将接受不同的时间段作为输入,并打印MA。函数不能直接返回任何值(除非通过引用使用全局变量/传递变量),但它仍然可以接受值并根据这些值执行操作。

代码语言:javascript
复制
void PrintMA( int period )
{
    Print( iMA( NULL, 0, period, 8, MODE_SMMA, PRICE_MEDIAN, 1 ) );
}

后续答案中的int函数只返回0,因此您可以将其交换为void函数并删除return(0),它将一如既往地工作。只需首先更改函数名,因为start是一个应该避免使用的函数名。

如果您阅读编译日志,您将能够了解为什么您的上述答案不能编译。

票数 2
EN

Stack Overflow用户

发布于 2017-06-01 20:15:18

void function(...)唯一不能做的事情就是永远参与MQL4赋值语句,即:

代码语言:javascript
复制
someVariable = aVoidDeclaredFUNCTION();

除了这个,一个人可以做任何可以想象的事情。

这怎么可能有用?

代码语言:javascript
复制
void aVoidDeclaredFUNCTION( const int  thisParameterWillNeverChangeItsVALUE,
                                  int &thisParameterWillBeAbleToChangeVALUE
                            ){...}

用一种技术按值传递,重传。要传递引用( &passVariableByREF ),即使是void function(...)也可以处理和“返回”-results,如果还不足以导致void function(...){...}主体中的某些操作,就其本身而言。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44311498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档