static全局变量与普通全局变量/static局部变量与普通局部变量/static函数与普通函数的区别

本文详细解释了静态全局变量和静态局部变量的概念及其与普通变量的区别,并探讨了静态函数的特点。此外,还介绍了如何正确引用全局变量以及在多个源文件中使用全局变量的方法。

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

1 普通全局变量前面加上static 就成了static全局变量,他们的存储方式都是一样,存在静态存储方式。区别在于作用范围,普通全局变量作用域是整个源程序,当一个程序有多个源文件组成时候,普通全局变量在每个源文件中都是有效的,而静态全局变量则限制了作用域,只在定义该变量的源文件中有效。在同一个源程序中的其他源文件不能使用。由于静态全局变量的作用域限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

 

static全局变量与普通全局变量区别 static全局变量只初始化一次,不能别其他源文件引用。

static局部变量与普通局部变量区别:static局部变量只初始化一次,下次引用的时候以上次的值。、

static函数与不同函数的区别:static函数在内存中只保存一份,普通函数被调用中维持一份拷贝。

 

 

2 引用一个已经定义过的全局变量

要在需要引用的文件中加上extern,或者直接extern 头文件

如果用引用头文件方式来引用某个在头文件中声明的全局变理,假定你将那个编写错了,那么在编译期间会报错,如果你用extern方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

 

3.全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么?   

答:可以,在不同的c文件中,以static形式来声明同名全局变量。 可前提是其中只能有一个c文件对此变量赋处值,此时连接不会出错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值