头文件与函数定义分离的处理

在工程中很多时候我们需要把函数体与主函数分开处理,相信这种已经非常常见了,只需要在主函数文件中包含#include ”filename.c“即可,当然现在编译器已经足够聪明,不需要写#include ”filename.c“都可以自己找到编译,但是好习惯还是要养成的。而这次我编译Linux系统编程之实现who命令的时候采用的是将函数编译为静态库进行链接的形式。

首先要把函数体拿出使用gcc -c filename.c -o filename.o命令提前翻译为后缀为.o的文件。

xxx@xxx-ThinkPad-X230-Tablet:~/code/unix_linux/who$ ls
!  a.out  show_info.c  show_info.h  show_info.o  showtime.c  showtime.o  who1.c

举例这里包含一些已经打包好的静态库,而编译时需要把主函数文件who1.c,两个静态库show_info.o,showtime.o一起编译,当然此时在主函数文件中who1.c就不能再包含#include ”filename.c“,否则编译时会重复导致出错。

这样做有什么好处呢?众所周知,计算机把C语言编译为计算机能够识别的机器码是需要占用性能的,目前函数较少感觉不出来,但是如果有成千上万个函数,而在实际中会反复多次调用一个函数,那么每次都需要去编译无疑是一种资源浪费。如果都把它们编译为.o文件,那么在使用时就可以直接链接,节省了大量的时间与性能,同时还可以以库的形式保留下来,被其它的函数直接调用。简单来讲,调用多次的情况下翻译好了再使用比用的时候翻译效率差别非常大。

有一种情况实际存在就是,你在写程序使用库的时候,

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值