函数

函数

  • 函数的定义
  • 函数的声明
  • 函数的分文件编写

函数的定义

作用: 将一段可能会经常使用的代码封装起来,减少代码的重复编写

函数的定义一般包括五个部分:

  1. 返回值类型
  2. 函数名
  3. 参数
  4. 函数体
  5. return语句
返回值类型 函数名(参数) {
	函数体;
	
	return语句;
}

函数案例,实现两个整数的求和:

#include 
using namespace std;

// 定义一个求和函数,返回求和的结果
int add(int x, int y) {
	int sum = x + y;
	
	return sum;
}

int main() {
	cout << "两个整数的和为:" << add(10, 20) << endl;
	
	system("pause");
	
	return 0;
}
---------
两个整数的和为:30

如果函数不需要返回值,在声明的时候可以定义为void
当函数定义为void时,函数中可以不写return语句,或者写成return;即可,return后面直接跟冒号,不要跟其他内容,否则会报错。

函数案例,实现两个数的交换:

#include 
using namespace std;

void swap(float x, float y) {
    cout << "交换前的两个数分别为:x = " << x << ", y = " << y << endl;
    
    float temp = x;
    x = y;
    y = temp;
    
    cout << "交换后的两个数分别为:x = " << x << ", y = " << y << endl;
}

int main() {
    swap(10, 20);
    
    system("pause");
    
    return 0;
}
---------
交换前的两个数分别为:x = 10, y = 20
交换后的两个数分别为:x = 20, y = 10

函数的声明

作用: 告诉编译器函数名称及如何调用函数,函数的实际主体可以单独定义

函数的声明可以有多次,但函数的定义只能有一次。

// 声明,可以有多次
int max(int a, int b);
int max(int a, int b);

// 定义,只能有一次
int max(int a, int b) {
	return a > b ? a : b;
}
#include 
using namespace std;

int max(int a, int b) {
	return a > b ? a : b;
}

int main() {
	int result = max(10, 20);
	
	cout << result << endl;
	
	system("pause");
	
	return 0;
}

/*
在vs 2022中,max函数可以定义在main函数前,也可以定义在main函数后,并不妨碍main函数内的代码在调用该函数时找到它。
但在vs的其他一些版本中,max函数只能定义在main函数前才能被其调用,如果max函数定义在main函数后,程序会运行错误。为了不让这种错误发生,可以提前声明max函数。
*/
#include 
using namespace std;

// 在main函数之前声明存在一个max函数
int max(int a, int b);

int main() {
	int result = max(10, 20);
	
	cout << result << endl;
	
	system("pause");
	
	return 0;
}

// max函数写在了main函数之后
int max(int a, int b) {
	return a > b ? a : b;
}

函数的分文件编写

作用: 让代码结构更加清晰

函数的分文件编写一般有四个步骤:

  1. 创建后缀名为.h的头文件
  2. 创建后缀名为.cpp的源文件
  3. 在头文件中写函数的声明
  4. 在源文件中写函数的定义

创建一个swap.h头文件,内容如下:

#include 
using namespace std;

// 实现两个数交换的函数声明
void swap(int a, int b);

// 如果函数声明不涉及iostream库、std命名空间等,都可以不写

创建一个swap.cpp源文件,内容如下:

#include 
using namespace std;

// 实现两个数交换的函数定义
void swap(int a, int b) {
    cout << "交换前的两个数分别为:a = " << a << ", b = " << b << endl;
    
    int temp = a;
    a = b;
    b = temp;
    
    cout << "交换后的两个数分别为:a = " << a << ", b = " << b << endl;
}

在主程序中调用swap函数:

#include "swap.h"  // 自定义的头文件用双引号括起来

int main() {
	swap(100, 200);
	
	return 0;
}
---------
交换前的两个数分别为:a = 100, b = 200
交换后的两个数分别为:a = 200, b = 100

你可能感兴趣的:(C++,c++)