c - 在 C 项目中使用“伞形”标头有什么缺点?
问题描述
我在一个 C 项目中看到了一个有趣的模式:他们在组件本身的任何地方都使用了一个伞头(一个包含来自组件的所有内容的标题)。
伞.h:
#include "component_file1.h"
#include "component_file2.h"
/* #include each and every header of the component */
组件文件1.h:
#include "umbrella.h"
/*include guard and header*/
组件文件1.c:
#include "umbrella.h"
/*c code*/
其他文件中的模式相同。我得到的解释是:
- 编译时间在那个项目中并不重要
- 它易于使用(无需了解标题层次结构)
一个额外的技术细节:在伞形.h中,他们对包含指令进行排序以解决内部依赖关系(例如,如果component_file_2.h使用component_file_1.h,他们的顺序是:首先是component_file_1.h,然后是component_file_2.h)
除了编译时间之外,这种方法是否有任何严重的缺点会反作用于它的使用?根据什么标准可以证明使用这种方法的代码重构是合理的?
解决方案
推荐阅读
- c - 矩阵中的最后一个数字是错误的
- go - 如何将元数据从 grpc-gateway 发送到 grpc 服务器?
- imagemagick - 托管主机上的 imagemagick 脚本
- python - 未绑定方法调用中的参数 self 没有值
- blockchain - 几个 Cordapp 可以访问同一个账本?
- apache-spark - 无法在 Azure Databricks 提供的 Spark 群集中导入已安装的 Python 模块
- java - Spring Boot 安全配置无法与角色/权限正常工作
- scala - 带有 sbt 程序集的 fatjar 上的“找不到类 org.apache.hadoop.fs.s3a.S3AFileSystem”
- xaml - *.xaml.g.cs 文件显示过时警告 (CS0618)。如何在部分类中使用过时的属性?
- php - 登录后,重定向在 CakePHP 中不起作用