学习记录——C语言的.h和.c文件

最近开始学习编译原理,学习过程中联想到了之前关于.h和.c文件的疑问:c语言头文件到底是怎么运作的呢?

实际上.h和.c文件的语法、内容完全一致,都当成.c文件来写也是没有问题的,但在优良的编程习惯中:
.h文件进行函数,变量声明,宏声明,结构体声明
.c文件进行变量定义,函数实现

PS:
可以理解成.h文件先声明了你在项目的各个.c文件中需要使用的各种工具名称,但只是抽象的定义,并没有具体实现的方法;而.c文件就是将这些抽象的定语具体实现出来。

这样的编程习惯好处就是条理清晰,而且避免了编译过程中的重复定义。
具体请参考以下文章的说明:https://www.cnblogs.com/chengjian-physique/p/9835924.html

本文试图对此过程打个比方,来加深读者的理解:

你想要做一张椅子出来(可执行文件),那么在脑中先构想好了需要的材料:木头、锯子、尺子、钉子等等(.h文件的变量声明,宏声明),决定好要椅子里需要有靠背、坐垫、四条腿(.h文件的结构体声明)。
下一步,你去采购物资,买来了A木料场的木头,B五金店的国产品牌锯子、尺子、钉子等等(.c文件的变量赋值),画好了设计图(.c文件中的函数实现),准备好了工作日程和内容(.c文件中的main()主函数)。
最后,用这些材料动手做出了椅子(编译器进行预处理、编译、连接工作生成可执行文件)。
大功告成!

编译器的工作:

1.预处理阶段:编译器以.c文件为单位,搜索.c文件中的所有头文件,将头文件的内容整合到.c文件中,生成“中间c文件”。

2.编译阶段:将所有"中间c文件"编译生成对应的目标文件。

3.连接阶段:将编译阶段生成的所有目标文件连接成最终的可执行文件(打包起来供用户使用)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值