头文件相关
头文件的作用是避免过多的前向声明
前置概念
预处理器:预处理器能够识别代码中的#命令,比如#include,#ifndef等
“#include “add.h”"引用可以理解为,预处理器直接将add.h这个文件里面允许编译的代码粘贴到main.cpp文件当中
为什么要进行#ifndef---#endif这样的操作呢?
回答:是为了避免重复命名,因为我们知道“#include “add.h”"引用可以理解为,预处理器直接将add.h这个文件里面允许编译的代码粘贴到main.cpp文件当中,所以当#include 的多个头文件之间,相互又有引用,也就是说预处理器会将重复的代码粘贴到当前编译的代码文件当中,就会出现重复命名的情况。
通过定义一个ADD_H这个字符,结合#ifndef,就可以保证同一个函数被定义的唯一性,避免重复命名。
这个操作被称为头文件保护
例子:
./test/
main.cpp
add.cpp
add.h
main.cpp

在main.cpp代码当中,#include了“add.h”这个头文件,没有进行add函数声明和定义
add.h

在add.h代码当中,首先判断ADD_H是否被define过了,也就是#ifndef ADD_H
如果没有被define,也就是说#ifndef这个判断为真,则编译从#ifndef到#endif之间的命令
其中就包括#define ADD_H,以及对add函数进行声明。这样的话,在main.cpp当中#include "add.h"之后,add函数声明就会被添加到main.cpp当中,main.cpp就不用再声明了
add.cpp

add.cpp当中不引用add.h也能进行编译,但是为了规范,推荐进行引用

浙公网安备 33010602011771号