头文件与源文件

c++编程中主要包括头文件(.h后缀)和源文件(.cpp后缀)两类文件。

这是一种变成风格,将声明和实现分别写在头文件和源文件中。

区分头文件与源文件不同之处首先要理解编译器的工作原理:

预处理:处理预编译语句,进行替换。

编译:按文件编译,生成目标文件,先将高级代码编译成汇编代码,再将汇编代码编译成目标机器的机器语言。

链接:将目标文件链接起来,生成可执行文件。

 

首先编译器会去寻找标准C和C++中的main()函数程序入口。

然后在进行main文件编译时,发现它有include其他头文件,就会到相应的路径下去寻找同名的实现文件,然后再找到对应的函数实现,进行编译。

 

链接阶段

静态链接:写好头文件和源文件,编译处静态库文件,然后将头文件和编译好的静态库文件提供给用户,那么用户通过引入头文件就可以使用库文件中已经实现好的函数功能,这样就做到了 “接口对外,实现代码不可见”。静态链接是在目标文件链接阶段就会打入可执行文件中,这样在运行时就可以直接使用,对于运行时环境没有过多依赖。

动态链接:动态链接是在编译链接阶段不会将库文件打入可执行文件中,这样可执行文件就会较小,但是对可执行文件的运行环境有要求,需要运行环境同样拥有这个动态库,运行可执行文件之前,会先将控制权交给动态链接器去加载运行时所需的所有动态链接库,然后控制权才会到main函数入口。

 

因此总的来说,头文件与源文件的编程方式是一种变成风格,你同样可以将声明和实现全部写入头文件中,不将其分离,但是这并不nice。因此,一般会将声明和实现进行分离,这样就可以做到接口对外,实现不可见的能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值