函数返回值如何工作
how does a function return value work
E.g 函数:
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 是函数的返回类型,则无论何时调用该函数,调用方都可以也可能不使用返回值。这不一定意味着这等同于无效返回类型。您可以选择检查返回值,但不需要检查,由您决定,可选。希望能回答。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 当我在第一个循环中使用"auto"时,它工作正常,但是使用"int"它会给出错误,为什么?
- 当 int 方法工作正常时,void 方法有何不同,或者为什么我不能调用 void 方法?
- sdl软件渲染器不工作,工作在硬件加速的一个