维基百科文档翻译:仅由头文件组成的代码,Header-only
在 C++ 编程语言的范畴中,对于一个 软件 库 ,如果它满足以下条件,则称它为仅由头文件组成的(header-only):这个库中的所有 宏 、 函数 和 类 的完整定义,都是以 头文件 的形式存在,对于 编译器 是可见的。仅由头文件组成的软件库,不需要单独地 编译 、打包和安装即可使用。需要做的仅仅就是,将编译器指向头文件所在的位置(在 gcc/g++ 中就是 -I 参数),然后,在应用程序的源代码中包含( #include )那些头文件。另一个好处就是,由于软件库的全部源代码都是可见的,因此,编译器的优化器可以更有效地工作。
缺点包括:
•. 脆弱 性( brittleness ) – 对于 这种软件库代码的大部分改动,都会导致使用 该个软件库的全部 编译单元 被重新编译
•.编译时间更长 – 编译单元必须看到所包含的文件中的所有部件,而不仅仅是看到它们的接口
•. 代码膨胀 ( code-bloat ) ( 这个问题是可以解决的 ) – 在非类的函数中使用内联( inline )语句,可能 会因为过度使用内联而导致代码膨胀。
尽管有以上缺点,仅由头文件组成的软件库还是狠流行,因为,它避免了(通常更难搞的)打包问题。
对于模板来说,将定义写入到头文件中,是让它能够编译成功的唯一途径,因为,编译器需要知道那些模板的完整定义才能完成模板的实例化。
本列表并 不完整 。
未知美人
林志玲
Your opinionsHxLauncher: Launch Android applications by voice commands