簡體   English   中英

函數返回值如何工作

[英]how does a function return value work

例如功能:

int pr()
{
   std::cout<<"test"<<std::endl;
   return 0; 
}

此函數的返回類型為int。 為什么我們可以在Main中編寫此函數而不指定任何內容。 例如

int main()
{
    int i = pr();  // all right.
    pr();   // but why is this correct also?
    // is this similar void function this moment?
}

它只是執行函數而返回值丟失,它沒有分配給任何地方,被忽略。

這是允許的,因為它不被禁止。 可能存在這樣一種情況:您只關心邏輯,而您實際上並不想使用返回值來指示對您當前任務不重要的事情。 例如:

int openFiles(string directory) {
    //opens files on directory and returns the number
    //of files that were successfully opened
}

我可能對返回類型不感興趣..

因為標准是這樣說的。 在許多語言中,不使用返回值將是一個錯誤。 由於各種歷史原因,在C或C ++中並非如此; 你被允許忽略返回值。

在實現級別: int通常在寄存器中返回; 如果忽略返回值,編譯器不會對該寄存器執行任何操作。 但是,對於類類型,調用者必須銷毀返回的值,即使他忽略了它。

在C / C ++中,函數可以選擇其返回類型為void或某些特定類型。 但是,如果non-void是函數的返回類型,則無論何時調用該函數,調用者都可以使用或不使用返回值。 這並不意味着這相當於void返回類型。 您可以選擇檢查返回值,但是您無需檢查,可選。 希望得到答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM