繁体   English   中英

包括.cpp而不是标题(.h)

[英]Include .cpp instead of header(.h)

在某些情况下,我们包含.cpp文件而不是标准头文件(.h),例如:

#include "example.cpp"

代替

#include "example.h"

它似乎有用,但是这样安全还是我应该避免它?

编译时间怎么样?

这是懒惰的编码。 使用头文件。 是的,它们可以增加编译时间,但它们意味着您可以轻松地重新实现代码块,或者更好的是,其他开发人员可以随时使用。 头文件用作C/C++代码的模板。 丢弃或忽略它是一个坏主意。

我同意Kerrek SB的观点。

我这样做了一次。 我正在构建一个优秀的,广泛使用的压缩库,需要为8位图像和12位图像单独构建。 我可以想出的最简单的方法是将它放到构建系统中(过度简化一点)有两个主.cpp文件,一个为8位构建设置#defines,另一个为12位构建。 然后,主.cpp文件#included压缩库的源文件。

如果您足够了解规则以了解其原因以及为什么它可能不适用于您的情况,那么不遵循一般规则是可以的。 (但这些案件应该很少见。)

#include "impl.cpp"有合法用途:

  1. 测试访问静态/ etc变量

  2. 如果c ++模板机制证明不足(罕见)这样的临时模板

    #define MACRO (...)

    #include "impl.cpp" // uses MACRO

请注意, #include "impl.cpp"可能不安全,因为相同的文件包含在稍后链接在一起的单独编译单元中。

我之前使用过它并没有问题,但我不能确保这是安全的。 有时这是我唯一的选择所以我用它,否则我会使用.h文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM