管理大量的#include语句和头文件
Management of lot of #include statements and header files
在我当前的项目中。我的许多.cpp
和.h
文件中包含了大量的内容,例如以以下方式声明的6或7个头文件。
#ifndef A_Header
#include "a.h"
#endif
#ifndef B_Header
#include "b.h"
#endif
我想知道如果我把所有这些头(在项目中使用的)包装在一个头中,然后在每个源文件中声明该头是否有意义
#ifndef Wrapper_Header
#include "wrapper.h" /*This would contain a collection of all headers*/
#endif
这个计划有什么我没有预料到的建议和缺点吗? 这太奇怪了。
每个header都应该包含一个header保护符:
#ifndef THIS_HEADER
#define THIS_HEADER
/* contents of the header */
#endif
这将在头中,而不是在包括.cpp
文件中。编译器检测到头保护,并避免在再次包含所有文本时重新读取所有文本。这可以节省几秒钟的编译时间。
如果您的头文件有这个,那么.cpp
文件中的守卫是无关的,您应该删除它们。6个或7个标题并不多,但那个愚蠢的样板确实加起来了。
永远不要包装标题,一定要明确,明确包含的内容,不要包含不需要的内容。
potatoswater正确
但是我喜欢使用"forward declaration"
我相信你可以谷歌一下。
相关文章:
- 如何基于平台在制作文件中制作if语句?
- C++:更改 IF 语句中的输出文件
- C# 读取完全锁定的文本文件或读取 if 语句外部的输出
- 关闭文件流时出错,其存在取决于与 C++ 中的 .close() 语句相同的布尔值
- 通过解析文件构建逻辑语句
- 头文件中可以包含"using namespace"语句吗?
- 在 cpp 文件中格式化 printf 语句
- 文件读取内/外,两个读语句(逻辑?
- 使用和if/else语句输出到屏幕或文件
- 无法在 C++ 中的 switch 语句中打开文件
- 如何使用 C 编程在运行时在 SQL 语句中传递文件路径
- 在文件中搜索 printf 语句并替换为字符串值
- 包含语句:找不到 SDL/SDL.h 文件
- 包含所有必需 #include 语句的单个头文件
- 如果文件位于 if 语句中,为什么我无法写入文件?
- 找出.h文件之间的#define语句冲突
- #include 指令和"using"语句的顺序在C++头文件的开头是否重要?
- 从c++中的文件中的sql语句创建sqlite3db
- .cpp文件头部的静态语句未被调用
- 管理大量的#include语句和头文件