是否有任何标准的包含顺序以避免隐藏的依赖关系? [复制]

Posted

技术标签:

【中文标题】是否有任何标准的包含顺序以避免隐藏的依赖关系? [复制]【英文标题】:Is there any standard order of inclusion to avoid hidden dependencies? [duplicate] 【发布时间】:2016-07-05 11:29:57 【问题描述】:

是否有任何标准的包含顺序以避免隐藏的依赖关系?

如果是,这个顺序正确吗?

    C 库头文件 C++ 库头文件 其他库头文件 相关标题 我们的项目标题

【问题讨论】:

始终首先包含您自己的标题 - 所以foo.cc 首先包含foo.hh。这确保了 foo.hh 是自包含的,并且不依赖于 foo.cc 包括它的其他标头。 【参考方案1】:

没有标准的顺序,但是如果你想避免隐藏的依赖,你必须按照完全相反的顺序:首先包含最特定于项目的头文件,然后是特定的库头文件,然后是更通用的库头文件(例如例如 Qt 和 boost),最后是标准库头文件。

这样,您将确定项目标头的缺失依赖项不会被您之前包含的标头意外地满足。

【讨论】:

以上是关于是否有任何标准的包含顺序以避免隐藏的依赖关系? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

上机实践报告

是否有任何有效的方法可以以最新的一阶对给定的 mongodb 数据进行分页并避免排序超出大数据的内存限制?

go包初始化顺序

以正确的方式避免循环依赖 - NestJS

避免具有异步数据依赖关系的事件链

关系数据模型的范式