栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

通俗易懂C语言关键字static

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通俗易懂C语言关键字static

一:static修饰局部变量

未用static修饰

用static修饰后

 从图一的代码和结果可以看出在未被static修饰第79行代码时,局部变量i在退出test函数时会销毁数据,因为第86行到90代码循环10次进入test()函数,运行完test函数时局部变量i的数据销毁,因此结果出现了10次 i的值为2

从图二可以看出,每一次调用test函数,使用的i都是上一次函数调用留下的i,把局部变量的数据保存下来了,因此结果i的值为2~11

从这里可以看出static修饰的局部变量出了自己的作用域也不会被销毁,相当于改变了这个局部变量的生命周期

二:static修饰全局变量

LNK 其实是指链接错误

图一可以看出用全局变量在整个工程的其他文件内部能被使用,是因为全局变量具有外部链接属性图二可以看到经过static修饰后,全局变量只能在源文件使用,其它文件不能使用,给我们的感觉相当于作用域变小了

我们可以把整个工程看作成一栋楼,一个工程里面不同的文件相当于不同的楼层,全局变量相当于一个人在那栋楼的某一层,在未被static修饰时他可以在那栋楼(工程)通过楼梯(链接)可以在不同的楼层中干活(文件),但是一旦被static修饰后,就相当于把楼梯拆了(不具有外部属性)人只能在他所在的楼层(文件)中工作

三:static修饰函数

全static修饰函数和修饰全局变量差不多,也是使得原本函数可以在整个工程的其它文件调用变得只能在他的源文件使用(也就是函数所在的.c或者.h文件)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/347135.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号