2017-06-01 117 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是您應該避免使用的函數名稱

如果您閱讀了編譯日誌,您將能夠看到爲什麼您的上述答案無法編譯。

相關問題