变量的定义与声明以及内部函数与外部函数

一、定义与声明

对变量而言,声明与定义的关系稍微复杂一些。在声明部分出现的变量有两种情况:一种是需要建立存储空间的(如“int a;”),另一种是不需要建立存储空间的(如“extern int a;”)。前者称为定义性声明,或简称定义(definition);后者称为引用性声明。
广义地说,声明包括定义,但并非所有的声明都是定义。
对"int a;”而言,它既是声明,又是定义;而对“extern a;”而言,它是声明而不是定义。一般为了叙述方便,把建立存储空间的声明称定义,而把不需要建立存储空间的声明称为声明。显然这里指的声明是狭义的,即非定义性声明。

二、内部函数与外部函数

变量有作用域,有局部变量和外部变量之分,那么函数有没有类似的问题呢
有的,有的函数可以被本文件中的其他函数调用,也可以被其他文件中的函数调用,而有的函数只能被本文件中的其他函数调用,不能被其他文件中的函数调用。
**函数本质上是全局的,因为定义一个函数目的就是要被另外的函数调用。如果不加声明的话,一个文件中的函数既可以被本文件中其他函数调用,也可以被其他文件中的函数调用。**但是,也可以指定某些函数不能被其他文件调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。
也就是说函数与全局变量一样,生来就具有外部链接性,两者都可以通过static将其限定在其源文件的范畴内!

static typeName functionName(typeName1 x1,typeName2 x2,...,typeNamen xn)//内部链接性,只能在本文件中被调用
cpptypeName functionName(typeName1 x1,typeName2 x2,...,typeNamen xn)//外部链接性,可以在文件间调用;(是函数的默认形式extern可以省略)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值