#include的本质是拷贝
A.h,B.h,C.h为头文件
(.h文件是C语言和【C++】语言的头文件,一般在【.h】类的头文件里面只放入函数声明,宏定义,函数原型,而具体的实现在【.cpp】文件里面。)
Test.c为源文件
假如按照上图的多文件结构进行编译,首先A.h会被拷贝到B.h和C.h,然后Test.c引入了B.h和C.h,此时在预编译的时候,就会拷贝出两份A.h,在链接的时候就会出现两段相同的代码,导致出现重复命名错误。
所以就算按照上图中使用了#ifndef开关,也还是不能避免重复出现被引用的头文件。那么想要避免这种错误,就得注意到,不要在 .h 文件中去进行函数的定义,要换成使用extern关键字去对函数进行声明,至于