static关键字作用

本文介绍了C语言中static关键字的功能,包括它如何改变局部变量、全局变量和函数的作用域与生存周期。static用于局部变量时,使得变量在程序结束时才消失,并在函数多次调用间保持值。对于全局变量,static限制了其可见性,仅限于定义它的源文件。而对于函数,static使得函数只能在当前文件内被调用,增加了数据安全性。总的来说,static常用于内部实现细节和避免命名冲突。

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


前言

第一篇博客,记录点滴,记录成长。


提示:以下是本篇文章正文内容,下面内容可供参考

一、static关键字作用

1.修饰的对象

包括:局部变量、全局变量、函数

2.变化

生存周期和作用域


3.修饰局部变量

普通的局部变量会随着函数的结束而结束,每次函数重新执行都是新的值不会保留上次的值。使用static修饰后,局部变量的生存周期只有当程序结束才会结束,并且再次调用函数时会保留上一次的值。
总结:用static修饰的局部变量改变了生存周期,但是没有改变其作用域,改变其生存周期的原因是被static修饰的局部变量被存放在.bas段或者.data段,而普通的局部变量是存放在栈上的。

4.修饰全局变量

使用static修饰的全局变量改变了作用域,没有改变生存周期。普通的全局变量是可以被其他的.c文件引用的,一旦被static修饰就只能在定义该全局变量的.c文件引用,全局变量的作用范围减小。
作用:当一个全局变量不想被其他.c文件引用时,可以使用static修饰,这样其他的文件就不能通过extern的方式去访问,这样做主要是为了数据安全。

5.修饰函数

使用static修饰函数,改变了作用域。普通的函数可以通过头文件声明的方式被其他文件调用,被static修饰后就只能在本文件中被调用,这样做也是为了数据安全。

总结

使用static修饰的全局变量和函数,除了上面说的数据安全,防止误引用外,还有一个作用是解决重命名问题。一般来说,不是要对外提供的函数和全局变量,最好用static修饰。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值