1、函数的本质:
- 函数由能完成特定功能的独立程序代码块组成,如有必要,也可调用其他函数(函数的嵌套)
- 函数内部工作对程序的其它部分是不可见的
2、 实现一个函数要经过3个步骤:定义、声明、调用
函数声明(又称函数原型)的原因:用来通知编译器函数的存在,以获得函数的使用许可,只有这样,才能在程序中对函数进行调用。
具体来说,函数声明的作用如下:
- 使编译器正确处理返回值
- 使编译器可以检查输入参数的数目
- 使编译器检查输入参数的类型,如果类型不正确,则对类型进行隐式转换
函数调用的作用如下:
- 用实参向形参传递数据
- 为获得数据的参数和函数中为声明的变量分配临时存储空间
- 中断当前正在运行的上级调用函数,将程序流程转到被调用函数的入口处
3、分割程序文件
一些程序常由许多文件组成,为了方便管理,经常将函数定义在cpp文件中,而将函数声明语句放在与cpp文件同名的头文件中(.h文件),这样就可以通过编译器预处理
#include "xxx.h"来实现函数的声明,这种方法在大型程序文件的组织中非常常见。
如:
主程序:example.cpp
#include<iostream> #include<stdlib.h> #include "func.h" //通过编译预处理,实现函数的声明 using namespace std; int main() { int num1,num2; int z; cout<<"请输入两个整数:"; cin>>num1>>num2; cout<<"输入的两个数的和为:"; z=add(num1,num2); print(z); cout<<"输入的两个数的较大值为:"; z=max(num1,num2); print(z); cout<<"输入的两个数的较小值为:"; z=min(num1,num2); print(z); system("pause"); return 0; }
函数功能:func.cpp
#include<iostream> using namespace std; int add(int x,int y) { int z; z=x+y; return z; } int max(int x,int y) { int z; if(x>y) z=x; else z=y; return z; } int min(int x,int y) { int z; if(x>y) z=y; else z=x; return z; } void print(int x) { cout<<x<<endl; }
函数声明:func.h
int add(int x,int y); int max(int x,int y); int min(int x,int y); void print(int x);