有些情况下,我们会包含 .cpp 文件而不是标准的头文件(.h),例如:
#include "example.cpp"
取代
#include "example.h"
这看起来可以工作,但这是否安全?或者我应该避免使用它?
编译时间怎么样?
有些情况下,我们会包含 .cpp 文件而不是标准的头文件(.h),例如:
#include "example.cpp"
取代
#include "example.h"
这看起来可以工作,但这是否安全?或者我应该避免使用它?
编译时间怎么样?
这是懒惰的编码方式。使用头文件来代替。是的,它们可能会增加编译时间,但它们意味着您可以轻松地重新实现代码块,或者更好的情况是,另一个开发人员随时可以接手。头文件作为您的 C/C++
代码将要执行的模板。丢弃或忽略它是一个坏主意。
.h
ж–Ү件еҢ…еҗ«еңЁд»Јз ҒдёӯиҖҢдёҚжҳҜ.cpp
ж–Ү件еҸҜд»Ҙжҳҫи‘—еҠ йҖҹзј–иҜ‘ж—¶й—ҙпјҢеӣ дёәе®ғдҪҝеҫ—иҝӣиЎҢйғЁеҲҶйҮҚж–°зј–иҜ‘жҲҗдёәеҸҜиғҪгҖӮ - tom我同意Kerrek SB的观点。
我曾经做过这件事情。我正在构建一个优秀的、广泛使用的压缩库,需要为8位图像和12位图像分别构建。我能想到的最清晰的方法是(有些简化),有两个主.cpp文件,一个设置8位构建的#define,另一个设置12位构建的#define。然后主.cpp文件#包含压缩库的源文件。
如果你足够理解规则并知道规则的原因及其在你的情况下可能不适用的原因,那么不遵循一般规则是可以的。但这种情况应该很少见。
#include "impl.cpp"
有其合理的应用场景:
测试对静态/等变量的访问权限
使用临时模板,如果 C++ 模板机制不足以满足需求(很少情况下)
#define MACRO (...)
#include "impl.cpp" // 使用 MACRO
需要注意的是,如果同一个文件被包含在多个编译单元中并最终链接在一起,则 #include "impl.cpp"
可能会不安全。
我以前用过它并没有问题,但我不能保证它是安全的。有时这是我的唯一选择,所以我使用它,否则我会使用 .h 文件。