zoukankan      html  css  js  c++  java
  • 重复包含解决的办法

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

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

    解决办法:
    在头文件中 

     

    这种写法也是固定的!
    再来看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不需要有源文件,它就是一个公关的头文件。

    总结

  • 相关阅读:
    [EOJ]2019 ECNU XCPC March Selection #1
    [模板]宏定义
    [POJ]poj1961,poj2406(KMP)
    [模板]KMP
    [CF]Avito Cool Challenge 2018
    [CF]Codeforces Round #528 Div.2
    [POJ]POJ1328(贪心)
    洛谷 P3808 【模板】AC自动机(简单版) 题解
    中科院的难题 题解
    【转】洛谷 P3722 [AH2017/HNOI2017]影魔 题解
  • 原文地址:https://www.cnblogs.com/dabing0983/p/10557031.html
Copyright © 2011-2022 走看看