外部变量

外部变量在全局范围内可访问,常用于不同函数间的数据交换。通过`extern`关键字可实现变量在不同源文件间的引用,而`static`则限制变量在当前文件内可见。初始化时,外部和静态变量默认为0,自动和寄存器变量未定义初始值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

外部变量

external与internal是相对的,internal用于描述定义在函数内部的函数参数和变量,external用于外部变量

外部变量可以在全局范围内访问,可以替代函数参数与返回值方式进行函数之间数据交换

当几个函数必须共享数据,而这几个函数并不互相调用时,将共享数据定义为外部变量最方便

如果要在外部变量的定义之前使用该变量,或者外部变量的定义与变量的使用不在同一个源文件中,则必须在相应的变量声明中强制性地使用关键字extern

也可用static声明外部变量(静态变量),使该变量不能被其他文件引用,不过现在不提倡此法,现在常用的方法是将要限定的内容放在匿名命名空间中,由于各个匿名命名空间各不相同,所以另一个源文件不能使用别的匿名命名空间的变量和函数,实现了限定

extern修饰的全局变量放到头文件中,声明与定义可分开(声明用于说明变量的属性,主要是变量的类型;定义除此之外还将引起存储器的分配),static修饰的全局变量放到使用文件中,声明与定义一体

register声明的变量(寄存器变量)在程序中使用频率较高,只适于自动变量及函数的形式参数

对于外部变量和静态变量来说,初始化表达式必须是常量表达式,且只初始化一次;对于自动变量(未加属性说明的局部变量)和寄存器变量,则每次进入函数或程序块时都将被初始化。在不进行显示初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初值则没有定义(初值为无用的信息)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值