【C++学习笔记】之——分离式编译

       随着程序越来越复杂,为了保证程序的可维护性和易读性,将程序不同功能的代码放在不同的文件中

是一个很好的方式,为了允许编写程序时,将代码按照逻辑关系保存到不同文件中,C++支持了分离式编

译。

       从代码层面来讲,为了更方便的实现分离式编译,一般会将函数/变量的声明和定义分离开。

       其中函数/变量的声明放在.h头文件中,函数/变量的定义放在.cc文件中,如果要跨文件使用函数/变量,

引用头文件即可,例如:函数fun的定义位于 define.cc文件,fun的声明位于define.h头文件,在test文件要

使用fun函数,只需#include "defind.h" 。

       将声明保存于.h文件的好处是,所有要用到fun的文件都只需要引用.h文件即可,避免了多次引用,如果

函数发生了修改,修改对应函数声明时,仅需修改.h文件里对应的这一个地方就可以,这里.h文件类似于统一

的接口要注意的是,声明可以有多次,而定义则不可重复定义,否则会有报错 。

extern关键字

       主要是为了支持函数/变量的跨文件使用,如果在define.cc中定义、define.h中声明的函数fun要在test.cc中

使用,必须要在fun声明时加上extern关键字,例:extern fun(int a, int b);

       extern的另一个用法是,可以指定编译方式,即如果直接用extern关键字,默认用C++方式编译,如果使用

extern "C"修饰,则声明使用C语言编译方式,这里对C方式编译做单独声明主要是因为C++的函数重载特性导致

如果使用C++方式来编译,函数的名称会在编译后变为函数名和函数形参的组合,而C编译方式则不会,因此使

用C++方式编译C的代码,会出现找不到函数的情况。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值