“分离式编译”是因,“区分声明与定义”是果

“分离式编译”是因,“区分声明与定义”是果

在实际编程中遇到这样的问题:c++程序中有多个文件,一个文件想用另一个文件中的变量该怎么办呢?
这就是“区别声明和定义”的典型应用场景。那么先说说为什么要区分声明和定义。

一 “分离式编译”是因

c++支持分离式编译,允许将程序分割为多文件,进而需要在文件间共享代码,一个文件中可能用到另一个文件中定义的变量,因此将变量的定义和声明区分开。
下面说说什么是定义,什么是声明,两者之间又有什么区别呢?

二 定义&声明的区别与联系

定义是创建与名字相关联的实体,声明使名字为程序所知。一个文件如果想要使用另一个文件定义的变量,必须包含对该变量的声明。
定义与声明的本质区别是:定义会为变量申请内存空间,也可能会为变量初始化。因此,变量的定义只能有一次,声明可以有多次。
变量的定义与声明的形式相同。在定义变量的文件中,定义也是声明,无需区分,但在想要使用变量的文件中,只能是声明不能是定义(否则就是重复定义变量),因此必须区分声明和定义。那么如何区分呢?如果想声明而非定义变量,在变量名前加extern,且不能对其初始化。
以上说的是区分变量的定义与声明,同样的,类也需要区分定义与声明。类的定义也只能有一次,一般将类的定义放在头文件中。函数的定义与声明也需要区分,函数在头文件中声明,在源文件中定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值