6.2.3 函数定义补充说明

    当函数的返回类型是void时,表明函数不向上级函数返回任何值,这时可以用一个空的“return;”语句,将程序流程返回,撤销函数调用时为参数和变量分配的栈内存空间,空的“return;”语句位于函数末尾时,该语句可以省略,用函数体的后花括号实现函数的返回即可。

    通常用返回类型为void的函数执行某些操作,见代码6.2。

    代码6.2 void型函数VoidFunction


    <—————————————-文件名:example602.cpp—————————————-> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 void print();//函数声明 06 print();//函数调用 07 return 0; 08 } 09 void print()//函数定义,void表示没有返回值 10 { 11 using namespace std;//要使用cout,同样要使用using编译语句 12 int n; 13 cout<<"请输入一个整数n:"<<endl; 14 cin>>n; 15 cout<<"你输入的数是:"<<n<<endl; 16 }

    输出结果如下所示。


    请输入一个整数n: 12 (注:键盘输入) 你输入的数是:12

    函数print()返回值是void类型,只完成接收用户输入并将其输出这个操作,不向main()函数返回任何值,print()函数最后的return空语句已省略。

    【代码解析】在main()函数内的“using namespace std;”语句只能使std名称空间中所有的名称在main()函数内使用,要想在函数print中应用cout和cin,必须在print()函数内部,即代码第11行使用“using namespace std;”语句,一个替代方案是在main()函数外部使用“usingnamespace std;”语句,这样便可在文件中任何地方使用std名称空间中所有的名称,代码6.2与下列代码是等价的。


    01 #include<iostream> 02 using namespace std; 03 int main() 04 { 05 void print();//函数声明 06 print();//函数调用 07 return 0; 08 } 09 void print()//函数定义 10 { 11 int n; 12 cout<<"请输入一个整数n:"<<endl; 13 cin>>n; 14 cout<<"你输入的数是:"<<n<<endl; 15 }

    另外,一个函数必须定义在其他函数的外部,并且在一个程序中只允许定义一次,否则编译器会给出重复定义的错误提示。