2017-06-01 119 views

回答

2

void”仅表示没有来自此功能的返回值。所以“返回值”不能由void函数完成。

希望能够帮助....

1

唯一一个void function(...)不能做的,是曾经参与的MQL4赋值语句,即:

someVariable = aVoidDeclaredFUNCTION(); 

除此之外,一个可以随便做一切皆可想象。

这怎么可能有用?

void aVoidDeclaredFUNCTION(const int thisParameterWillNeverChangeItsVALUE, 
            int &thisParameterWillBeAbleToChangeVALUE 
          ){...} 

使用技术传递值, (&passVariableByREF),即使void function(...)可以处理和“返回” - 结果,如果它不足以导致在void function(...){...}正文,本身的一些行动。

+0

嗨user3666197,希望你好。我已经修复了拼写错误(有用的有一个L)。在标题问题上,我会加倍努力,因为许多人一直在你的帖子(包括版主)中编辑它。我希望你在新的答案中减少这一点。当你得到片刻时,请打开一个聊天窗口,我们可以讨论。 – halfer

2

,你可以把一个void功能一切,你可以把一个doubleintstringbool ...功能。函数返回的是哪种类型的变量。

例如,以下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)); 
} 

在你的跟进答案永远只能返回0,所以你可以将其交换到void功能,并删除return(0),它会像以前一样工作int功能。 只需更改函数名称start是您应该避免使用的函数名称

如果您阅读了编译日志,您将能够看到为什么您的上述答案无法编译。

相关问题