a)如果函数定义没有返回值,函数调用时不能写void关键字,调用函数时也不能接收函数的返回值。
// 函数的定义void test(){}int main(){// 函数的调用test(); // rightvoid test(); // error, void关键字只能出现在定义,不可能出现在调用的地方int a = test(); // error, 函数定义根本就没有返回值return 0;}
b)如果函数定义有返回值,这个返回值我们根据用户需要可用可不用,但是,假如我们需要使用这个函数返回值,我们需要定义一个匹配类型的变量来接收。
/ 函数的定义, 返回值为int类型int test(){}int main(){// 函数的调用int a = test(); // right, a为int类型int b;b = test(); // right, 和上面等级char *p = test(); // 虽然调用成功没有意义, p为char *, 函数返回值为int, 类型不匹配// error, 必须定义一个匹配类型的变量来接收返回值// int只是类型,没有定义变量int = test();// error, 必须定义一个匹配类型的变量来接收返回值// int只是类型,没有定义变量int test();return 0;}
