重复包含解决的办法

头文件重复包含所引起的问题,问题就一个——重定义。因为把同样的代码在同一个文件中复制黏贴了两份,比如对结构体类型,复制了两份就是两个一模一样的结构体,所以会报重定义的错误!!!

既然允许头文件重复包含,但是如何去处理,让你不能够重定义?

解决办法:
在头文件中 

 

这种写法也是固定的!
再来看c3.h中的

而应该换个名字

为什么这样写了之后,就不会有重复定义的问题了?

把所有的东西都替换了(#include"c3.h",#include "d3.h")

接下来讲一个规范

如果一个结构体要在很多文件中使用这个结构体,或者以后定义的宏,typedef,等等。同样的这些个东西可能要在很多的文件中使用,这个时候一般的做法是定义一个公共头文件。common.h

把结构体的定义放在common.h中

在哪个文件中使用这个结构体,就直接包含common.h就可以了

这样在d3.h中就不用包含c3.h。这样会让单独的这些文件之间,他们的关系就清晰了,不会你包含我,我包含你,乱七八糟的关系。把咱们都要用到的东西,放在一个文件中,大家要使用这个东西的时候,直接让c3.h和common.h有关系,d3.h和common.h 有关系。common成了一个公共的东西。common.h不需要有源文件,它就是一个公关的头文件。

总结

原文地址:https://www.cnblogs.com/dabing0983/p/10557031.html