在我的项目中使用#include "randombytes.cpp"而不是randombytes.h(这是我的项目源代码目录中的文件)是一个好主意吗? randombytes.cpp看起来像这样:

#ifndef RANDOMBYTES_INCLUDED
#define RANDOMBYTES_INCLUDED

/* include native headers here */

unsigned char *fetch_random_bytes(int amount);

/* include other parts of my project here if necessary */

unsigned char *fetch_random_bytes(int amount) {
  // do stuff
}

#endif

这也应该适用于需要相互依存的文件,对吧?您能想到在任何情况下都行不通或我无法获得优化 yield 的情况吗?

最佳答案

这种做法称为“Unity Build”(使用google),对于琐碎的项目,通常不是什么好主意,因为每次进行单个更改时,您都需要重新编译整个项目,这意味着您每次需要等待几分钟修复一个小错误。

至于运行时性能,速度上的差异与启用“链接时间优化”的编译没有太大差异。

10-08 00:31