函数返回值如何工作

时间:2014-04-07 08:38:11

标签: c++

E.g功能:

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

此函数的返回类型为int。为什么我们可以在Main中编写此函数而不指定任何内容。  e.g

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

3 个答案:

答案 0 :(得分:1)

它只是执行函数而且返回值丢失,它没有被分配到任何地方,被忽略。

这是允许的,因为它不被禁止。可能存在这样一种情况:您只关心逻辑,而您实际上并不想使用返回值来指示对您当前任务不重要的事情。例如:

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

我可能对返回类型不感兴趣..

答案 1 :(得分:1)

因为标准是这样说的。在许多语言中,不使用 返回值将是一个错误。由于各种历史原因, 在C或C ++中不是这种情况;你被允许忽略了 返回值。

在实施级别:int通常会返回 登记册;如果忽略返回值,编译器就不会这样做 对该登记做任何事情。但是,对于类类型, 调用者必须破坏返回的值,即使他忽略了它。

答案 2 :(得分:0)

在C / C ++中,函数可以选择其返回类型为void或某种特定类型。但是,如果non-void是函数的返回类型,则无论何时调用该函数,调用者都可以使用或不使用返回值。这并不意味着这相当于void返回类型。您可以选择检查返回值,但是您无需检查,可选。希望得到答案。

相关问题