StupidBeauty
Read times:3255Posted at:Wed May 10 13:01:27 2017 - no title specified

维基百科文档翻译:仅由头文件组成的代码,Header-only

C++ 编程语言的范畴中,对于一个 软件 ,如果它满足以下条件,则称它为仅由头文件组成的(header-only):这个库中的所有 函数 的完整定义,都是以 头文件 的形式存在,对于 编译器 是可见的。仅由头文件组成的软件库,不需要单独地 编译 、打包和安装即可使用。需要做的仅仅就是,将编译器指向头文件所在的位置(在 gcc/g++ 中就是 -I 参数),然后,在应用程序的源代码中包含( #include )那些头文件。另一个好处就是,由于软件库的全部源代码都是可见的,因此,编译器的优化器可以更有效地工作。

缺点包括:

  • •. 脆弱 性( brittleness – 对于 这种软件库代码的大部分改动,都会导致使用 该个软件库的全部 编译单元 被重新编译

  • •.编译时间更长 – 编译单元必须看到所包含的文件中的所有部件,而不仅仅是看到它们的接口

  • •. 代码膨胀 code-bloat ( 这个问题是可以解决的 ) – 在非类的函数中使用内联( inline )语句,可能 会因为过度使用内联而导致代码膨胀。

尽管有以上缺点,仅由头文件组成的软件库还是狠流行,因为,它避免了(通常更难搞的)打包问题。

对于模板来说,将定义写入到头文件中,是让它能够编译成功的唯一途径,因为,编译器需要知道那些模板的完整定义才能完成模板的实例化。

( 大部分模块 ) 仅由头文件组成的软件库列表

本列表并 不完整

未知美人

林志玲

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands