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?
}
答案 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返回类型。您可以选择检查返回值,但是您无需检查,可选。希望得到答案。