C++中.h和.cpp的关系


       首先,我们可以将所有东西都放在一个.cpp文件内,然后编译器就将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。如果你不想让你的源代码变得很难阅读的话,就请使用多个编译单元吧。

        一个.cpp对应一个.obj,然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。

       链接器将所有的obj链接起来,但是如果碰巧有相同的函数或外部变量怎么办?C++可以通过一种叫做链接属性的关键字来限定,某个函数是属于整个程序公用的,还是只在一个编译单元obj里面使用,这些关键字就是extern(外部链接)和static(内部链接)。

       此时,让我们说说.h。其实没有.h,程序也能很好的工作,但是当你发现一个外部链接的函数或外部变量,需要许多分声明,因为只要使用到该函数的单元,就必须写一份声明在那个.cpp里面,如果要修改会很麻烦!!!

      .h就是为了解决这个问题而诞生的,它包含了这些公共的东西,然后所有需要使用该函数的.cpp,只需要用#include包含进去便可,以后需要修改,只是修改一份内容。

       请注意不要滥用.h,不要在.h里面写代码。#include并不是什么申请指令,只是将指定文件的内容,原封不动的拷贝进来。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值