由include 想到的,不知道代码这么写有什么好处
看了国外一游戏代码,把所有头文件的 include 都放在 Library.h 里,然后在每个 .cpp 文件里 include "Library.h "
假设头文件有 a.h, b.h, c.h,
那 Library.h 里的文件就是:
#include "a.h "
#include "b.h "
#include "c.h "
假设在 main.cpp 文件里,只要用到 a.h 头文件,那用 #include "Library.h " 的话不就多引用其他头文件了。这样不就代码膨胀了,编译的 obj 也大好多。
而且这么做弄不好还会重复引用,不知道这么做有什么好处?
[解决办法]
如果这个Library很大,建议把它拆分成多个模块。
如果不是很大的话这样可以方便用户不用再记哪个模块在哪个头文件里。
关于重复包含可以用头文件保护避免。
[解决办法]
完全是为了加快YU编译速度, 应该根据头文件的稳定性分组, 最稳定的最先include, 更好的做法是另外建几个头文件来专业include其他头文件
[解决办法]
这样组织我也看到过~ 但是一般要把模块分开 或者Library里面加上备注~
[解决办法]
那些用不到的内部或外部符号在link时不会链到目标程序里的
[解决办法]
晕,放main()外面,和定义全局变量相似
[解决办法]
“内部链接”是指作用域在每个翻译单元(简单地说,每个.cpp文件)内部,链接器是看不到它们的。这样,即使是同名的定义,如每个翻译单元中都有 static MyClass my_instance; ,也不会被当成同一个对象,所以就不会有重复定义问题。其中 "static "用来指明它是一个内部链接。如果没有 "static ",就是外部链接了。那时,链接器会把它们看作同一个对象,从而不允许重复定义。