头文件通常用于存储各种声明,当引入一个头文件后,链接器会查找和这个头文件(.h)对应的源码文件(.cpp),并尝试将其引入当前作用域。它还有一个好处是可以让我们在查看函数定义时,只看头文件而不必去看庞大的源码文件。
下面是一个简单的头文件定义(MyFunctions.h)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
/************************************************************************
* Source File: MyFunctions.h
* Description: Headers
* Author: jinlei Wang
* Create Date: 2023-02-12
*************************************************************************/
#pragma once
/*
#pragma once 是一个非标准的预处理指令,但它被许多现代编译器广泛支持,用于防止头文件被多次包含(即多重包含)。
当你在头文件中使用 #pragma once 时,它告诉编译器:“如果这个头文件已经被包含过了,就不要再包含它了。”
这有助于避免由于头文件被重复包含而导致的编译错误,如重复定义变量、函数或类等。
*/
/************************************************************************
* Create Date: 2023-02-12
* Function: Add
* Description: 计算两个数 a、b 的和
* In Params: int a
* In Params: int b
* Return: 返回 a + b 的和
*************************************************************************/
int Add(int a, int b);
/************************************************************************
* Create Date: 2023-02-12
* Function: Multiply
* Description: 计算两个数 a、b 的乘积
* In Params: int a
* In Params: int b
* Return: 返回 a + b 的乘积
*************************************************************************/
int Multiply(int a, int b);
|
实现文件(MyFunctions.cpp)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/************************************************************************
* Source File: MyFunctions.cpp
* Description: Headers
* Author: jinlei Wang
* Create Date: 2023-02-12
*************************************************************************/
int Add(int a, int b) {
return a + b;
}
int Multiply(int a, int b) {
return a * b;
}
|
调用函数,包含MyFunctions.h
1
2
3
4
5
6
7
8
9
10
|
#include <iostream> // 尖括号代表在系统目录查找头文件
#include "MyFunctions.h" // 双引号代表在当前目录中查找头文件
int main() {
int result1 = Add(1, 3);
std::cout << result1 << std::endl;
int result2 = Multiply(3, 3);
std::cout << result2 << std::endl;
}
|