C++ 为什么在函数中使用void?

C++ 为什么在函数中使用void?,c++,function,return,void,C++,Function,Return,Void,我知道void不返回任何值。 那么它是如何与函数结合工作的呢 我的理解是,函数的目的是在对某个信息执行某些操作后返回该信息 那么,为什么我不想返回任何价值,这将如何成为受益人 我的理解是函数的目的是返回 用它做某事后的一条信息 在某些(大多数)编程语言中,函数也有副作用。某些函数的用途仅限于副作用,不需要返回值。此类函数具有void返回类型 副作用的一些例子可能是: 更新全局 用户不想知道操作状态的文件操作、日志记录等 释放资源 C++编程语言Stroustrup第四版手册 声明函数时,必须指定

我知道void不返回任何值。 那么它是如何与函数结合工作的呢


我的理解是,函数的目的是在对某个信息执行某些操作后返回该信息

那么,为什么我不想返回任何价值,这将如何成为受益人


我的理解是函数的目的是返回 用它做某事后的一条信息

在某些(大多数)编程语言中,函数也有副作用。某些函数的用途仅限于副作用,不需要返回值。此类函数具有
void
返回类型

副作用的一些例子可能是:

  • 更新全局
  • 用户不想知道操作状态的文件操作、日志记录等
  • 释放资源

  • C++编程语言Stroustrup第四版手册

    声明函数时,必须指定返回值的类型。从逻辑上讲,您希望能够通过省略返回类型来指示函数没有返回值。然而,这会把语法弄得一团糟(§iso.a)。因此,void被用作“伪返回类型”,以指示函数不返回值

    编辑:

    当您不希望调用函数得到回报时,我们使用
    void
    函数


    因为您并不总是希望返回值。有时你会这样做,但有时却毫无用处。参考Pascal的过程和函数(过程不返回任何内容),返回void的C/C++函数相当于其他编程语言中的“过程调用”。不幸的是,不是。所谓的“函数”可以对参数(由参考提供)执行某些操作,并产生副作用(对系统和外围设备)。所以返回值不是它的唯一目的。“我的理解是,函数的目的是在使用它做一些事情后返回一条信息。”不一定。人们创建函数也是为了模块化。另外,您不必总是返回结果,如果传递的参数是
    out
    params,您也可以将结果存储在其中一个参数中。我认为值得指出的是,约束每个函数返回一个值并且没有副作用是函数范式的定义,这是一个范式,每个语言实现中的每个函数都有一些副作用,至少会加热处理器和/或浪费时间。重要的是有用的副作用。感谢@BasileStarynkevitch添加另一个维度。我完全同意你的观点。问题不是“当函数不返回值时,为什么我们要使函数无效?”,而是“为什么我们希望函数不返回值?”。
    函数的目的是返回一条信息
    ——我不太同意这种说法。这与通过引用传递的概念相矛盾。这不是我评论的重点。此外,这一点在问题的评论中进行了讨论,而另一个答案则说明了这一点。