gpt4 book ai didi

c++ - 您对大型项目的首选 C/C++ header 策略?

转载 作者:IT老高 更新时间:2023-10-28 13:57:26 28 4
gpt4 key购买 nike

在处理大型 C/C++ 项目时,您是否对源文件或头文件中的 #include 有一些特定规则?

例如,我们可以想象遵循以下两条过度规则之一:

    .h 文件中禁止使用
  1. #include;由每个 .c 文件来包含它需要的所有标题
  2. 每个 .h 文件都应包含其所有依赖项,即它应该能够单独编译而不会出现任何错误。

我认为任何项目之间都需要权衡取舍,但您的项目是什么?你有更具体的规则吗?或者任何支持任何解决方案的链接?

最佳答案

如果您只将 H 文件包含到 C 文件中,则将 H 文件包含到 C 文件中可能会导致编译失败。它可能会失败,因为您可能必须预先包含 20 个其他 H 文件,更糟糕的是,您必须以正确的顺序包含它们。拥有大量 H 文件,从长远来看,该系统最终将成为管理方面的噩梦。您想要做的只是包含一个 H 文件,结果您花了两个小时找出还需要包含哪些其他 H 文件。

如果一个 H 文件只有在首先包含另一个 H 文件的情况下才能成功包含到 C 文件中,那么第一个 H 文件应该包含第二个 H 文件,依此类推。这样,您可以简单地将每个 H 文件包含到您喜欢的每个 C 文件中,而不必担心这可能会破坏编译。这样你只指定你的直接依赖项,但如果这些依赖项本身也有依赖项,则由它们来指定。

另一方面,如果没有必要,请不要将 H 文件包含到 H 文件中。 hashtable.h 应该只包含使用哈希表实现所需的其他头文件。如果实现本身需要 hashing.h,则将其包含在 hashtable.c 中,而不是 hashtable.h 中,因为只有实现需要它,而不是只想使用最终哈希表的代码。

关于c++ - 您对大型项目的首选 C/C++ header 策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/181921/

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