分离式编译
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分离式编译相关的知识,希望对你有一定的参考价值。
<c++ primer> p186:
举个例子fact函数的定义位于一个名为fact.cc的文件中,它的声明名为Chapter6.h的头文件中.显然与其他用到fact函数的文件一样,fact.cc应该包含Chapter6.h头文件.另外,我们在名为factmain.cc的文件中创建main函数,main函数将用到fact函数.要生成可执行文件,必须要告诉程序我们用到的代码在哪.如果我们修改了其中一个源文件,那么只需要重新编译那个改动了的文件.大多数编译器提供了分离式编译每个文件的机制,这一过程通常产生一个后缀名是.obj(windows)或者.o(unix)的文件,后缀名的含义是该文件包含对象代码.接下来编译器负责把对象文件链接在一起形成可执行文件.
百度知道:
c++程序使用一对同名的.c和.h文件的意义何在?
h文件中写函数声明,c文件中实现,这样分离之后,如果其他c文件需要调用其中的函数只要包含同名的h头文件即可。吧具体相同功能的函数放置在一个h头文件中声明也有助于分类。项目越大,你如果吧所有函数都写在一个文件中,维护起来就更麻烦了,编译的时候也是一个c文件一个c文件生成中间代码,然后一起链接起来,这样也便于维护。另外还要考虑库的问题,比如你要使用动态库,你如果在h文件中实现函数,那库的意义就不存在了。
以上是关于分离式编译的主要内容,如果未能解决你的问题,请参考以下文章