gpt4 book ai didi

c++ - 避免双重包含 : Preprocessor directive vs. makefile

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:43 24 4
gpt4 key购买 nike

我正在努力从弗兰肯斯坦和一个文件数千行的程序转变为结构良好、组织良好的多文件程序。现在看起来很自然(天真)的是为我的三个文件制作一个包含标题的三角恋:
file_1 包括 file_2、file_4
file_2 包括 file_3、file_4
file_3 包括 file_1 ....等等等等
这些文件具有我在其他文件之间需要的变量、方法、结构等。

当然,我遇到了双重包含错误。

我的问题: 我应该通过在 header 中使用预处理器指令(例如,完全在 header 中包括结构、方法等)来避免这些问题,还是应该使用 makefile 进行编译(我hear 也可以用来解决这个问题---但我从来没有做过)?

最佳答案

您应该始终使用 include guards这样您就可以在需要时包含通用头文件。这实际上独立于 Makefile 或您选择使用的任何构建工具。

您还应该尽可能避免循环依赖,否则您将需要使用 forward declarations解决它们。

关于c++ - 避免双重包含 : Preprocessor directive vs. makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5000749/

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