函数的定义

语法:返回值类型 函数名 (参数列表) {函数体 return表达式}

#include <iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int func(int a, int b) {
    return a + b;
}
int main() {
    int a, b;
    cin >> a >> b;
    cout << func(a, b);
}
  1. 定义的时候,参数列表的参数叫做形参,调用函数的时候传入的参数,叫做实参.调用函数的时候,实参的值传递给形参.
  2. 形参可以理解为实参的复制体,在函数内对形参的操作不会影响实参的值
  3. 如果函数不需要返回值,返回值类型写void
    4.参数列表也可以为空
#include <iostream>
#include<iomanip>
#include<cmath>
using namespace std;
void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}
int main() {
    int a, b;
    cin >> a >> b;
    swap(a, b);
    cout << a << endl;
    cout << b << endl;
}

函数的样式

  1. 无参无返
  2. 有参无返
  3. 无参有返
  4. 有参有返

函数的声明

函数可以多次声明,但是只能定义一次

#include <iostream>
using namespace std;
int max_num(int a, int b);
int max_num(int a, int b);
int main() {
    int a, b;
    cin >> a >> b;
    cout << max_num(a, b) << endl;
}
int max_num(int a, int b) {
    return a > b ? a : b;
}

把函数的定义放在主函数之后.可以让代码更清晰明了.声明的函数和定义的函数必须返回值和参数相同.

函数的分文件编写

函数分文件编写一般有4个步骤

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

下面是func.h头文件的内容

#pragma once
#include <iostream>
using namespace std;
int add(int a, int b);

下面是func.cpp文件的内容

#include <iostream>
using namespace std;
int add(int a, int b)
{
    return a + b;
}

下面是主程序main.cpp文件的内容

#include <iostream>
#include "func.h"
using namespace std;
int main() {
int a=0,b=0;
cin >> a >> b;
cout << add(a, b) << endl;
}

在包含自己编写的头文件时不使用< >而是使用" "