gpt4 book ai didi

c++ - 包含所有必要的#include 语句的单个头文件

转载 作者:太空狗 更新时间:2023-10-29 20:39:37 28 4
gpt4 key购买 nike

我目前正在开发包含大量源文件的程序。有时很难跟踪我已经#included 的库。理论上,我可以制作一个名为 Headers.h 的头文件,它只包含我需要的所有 #include 语句,然后制作所有其他头文件 #include "Headers.h".

为什么这是个好/坏主意?

最佳答案

优点:

  • 维护工作略有减少,因为您不必跟踪哪些文件包含来自哪些库或其他组件的 header 。

缺点:

  • 包含文件中的定义可能相互冲突。尤其是在没有 namespace 的 C 中(您使用 C 和 C++ 标记)
  • 宏尤其会导致难以调试的问题,其中宏定义意外地与文件中的某个名称或其他包含的文件之一发生冲突
  • 根据您使用的编译器,编译时间可能会过长。如果使用预编译 header 的编译器,它实际上可能会减少编译时间,但如果不这样做,则会发生相反的情况
  • 您经常会不必要地触发文件重建。如果您的构建系统设置正确,那么如果任何包含的文件被修改,每个源文件都将被重建。如果您总是在项目中包含所有头文件,那么对任何头文件的更改都将强制重新编译所有源文件。不太可能成为系统 header 的问题,但如果您在主文件中也包含自己的 header ,则会成为问题。

总的来说,我不推荐这种方法。上面列出的最后一个缺点特别重要。

最佳做法是仅包含每个文件中的代码所需的 header 。

关于c++ - 包含所有必要的#include 语句的单个头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27308772/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com