[英]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.