10. 函数
10.1 概述
作用:将一段经常使用的代码封装起来,减少重复代码
一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能
10.2 函数定义
int getSum(int a,int b){
int sum=a+b;
return sum;
}
10.3 函数调用
功能:使用定义好的函数
语法:函数名(参数)
int add(int num1,int num2){
int sum=num1+num2;
return sum;
}
int main(){
int a=10;
int b=5;
//调用函数
int sum=add(a,b);
cout<<sum<<endl;
return 0;
}
10.4 函数的常见的4种样式
- 无参无返
- 有参无返
- 无参有返
- 有参有返
10.5 什么是函数原型(函数声明)
作用:告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。
函数的声明可以多次,但是函数的定义只能有一次
函数原型(函数声明)告诉编译器函数的名称、函数返回数据的类型、函数预期接收的形参个数及形参的类型和顺序。
函数原型的语法:int getSum(int,int)
10.6 为什么需要函数原型
- 告诉编译器函数的调用规则
- 提高编译器编译效率
- 解决调用其他文件中函数时被限制的问题
如果首次使用函数之前定义函数,则不需要函数原型,此时,函数头就是函数原型。
函数调用:
10.7 函数的分文件编写
作用:让代码结构更加清晰
函数分文件编写步骤:
- 创建后缀名为.h的头文件
- 创建后缀名为.cpp的源文件
- 在头文件种写函数的声明
#include<iostream>
using namespace std;
void swap(int a, int b);//函数声明
- 在源文件中写函数的定义
#include "swap.h"//引入头文件
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
cout << "a=" << a << "b=" << b << endl;
}
- 在main()所在文件中调用
#include<iostream>
#include"swap.h"//引用头文件
using namespace std;
int main() {
int a = 10;
int b = 20;
swap(a, b);//调用函数
return 0;
}