为什么函数在没有返回的情况下完美地工作

时间:2016-09-13 06:53:13

标签: c++ function return

我在定义结尾处有一个与函数无关的问题而没有return语句。这个怎么运作?它可以返回一些东西,因为当我们调用func时,返回的值是用随机数分配在堆栈上的吗?请查看以下示例:

#include <iostream>

using namespace std;

int fun1(){
    cout << "Fun1" << endl;
}

char fun2(){
    cout << "Fun2" << endl;
}

short fun3(){
    cout << "Fun3" << endl;
}

float fun4(){
    cout << "Fun4" << endl;
}

double fun5(){
    cout << "Fun5" << endl;
}

int main()
{

   cout << fun1() << " " << endl;
   cout << fun2() << " " << endl;
   cout << fun3() << " " << endl;
   cout << fun4() << " " << endl;
   cout << fun5() << " " << endl;
}

1 个答案:

答案 0 :(得分:-5)

为了创建一个没有任何return语句的函数,你需要使它成为一个“void”函数。请记住,用于定义函数的变量类型是将在函数末尾返回的变量类型。如果你的函数是Int类型,它需要一个Integer作为回报。如果你的函数是Char类型,它需要返回一个Character。

上面的例子不起作用,因为在每种情况下,编译器都期望函数结束时返回。但是如果你在每个函数名之前都有“void int”,那么这些函数就可以工作了。

void int fun1()
{
     cout << "Fun1" << end;
}