为什么我们需要void函数?

kmi*_*las -9 c++ int return void c++11

有什么理由我们需要无效功能吗?

出于与int main()标准相同的原因,为什么不简单地0从不需要返回值的函数返回?我看到使用int类型有三个直接的好处:
1.我们可以返回一个代码来指示函数状态; 通常,如果出现问题,我们可以返回非零错误代码.
2.我们可以在调试时输出函数的返回值
3.它是main()例程的标准; 就是,int main() {}.为什么不跟风呢?

是否有任何理由为什么我们宁愿voidint

示例:对奶酪数组进行排序并通过引用返回的函数.

#include <iostream>
#include <string.h>

int sortArrayInt(string & _cheese[]) { // pun intended ;D
    int errCode = 0;
    try {
        // ..sort cheese[] array
    } catch(e) {
        errCode = 1;
    }
    return errCode;
}

void sortArrayVoid(string & _cheese[]) {
    // .. sort cheese[] array
    // no return code to work with, doesn't follow int main() standard, and nothing to output.
}

int main() {
    string cheese[5] = {"colby","swiss","cheddar","gouda","brie"};
    std::cout << "Sort Status: " << sortCheeseArrayInt(cheese) << std::endl;
    sortArrayVoid(cheese);
    // ..print cheese array
}

OUTPUT:
Sort Status: 0
brie, cheddar, colby, gouda, swiss
Run Code Online (Sandbox Code Playgroud)

Ser*_*eyA 10

当函数业务逻辑不需要时,没有理由返回整数.不这样做的原因如下:

  • 意图清晰.如果不返回值,则每个人都知道函数不返回值.呼叫者不需要试图理解如何处理0的返回值.
  • 编译器会为您进行检查.如果您尝试在没有预期的情况下(错误地)返回值(或者在没有提供时读取值)编译器将警告您
  • 返回值不是免费的.为什么浪费你不需要的东西?

  • @kmiklas,我已经回答了。`main` 在很多方面都是一个例外。它可以有 2 个或 0 个参数的形式(在 C 中没有其他函数可以做到这一点),它有一个 int 返回类型,但可能会错过一个 `return` 语句(任何其他函数的错误),它不能直接从您的代码中调用,等等。不要将您的功能与 main 进行比较,它们不是同级公民。 (2认同)