繁体   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