如何分析static关键字
admin
2023-02-05 09:40:03
0

static作为C语言中的关键字,其引入之初是为了解决局部变量在函数结束之后其值仍然可以得到保存的问题。随后在C语言的拓展中,又增加了一个功能,修饰函数或变量的可见性为本文件。由此我们可以知道,static关键字在C语言中有两个作用:一,修改变量;二,修饰函数。

一:static修饰变量

变量分为局部变量(函数体内定义的变量)和全局变量(函数体外定义的变量),不管其修饰的是局部变量还是全局变量,为变量分配的内存空间都在静态区。

(1)静态全局变量:

作用于仅限于变量被定义的文件中,其他文件即使使用了extern声明也无法使用这个变量。从变量定义开始,到文件结尾这部分代码可以使用这个静态全局变量。变量定义之前的代码或者其他文件中的代码无法访问这个变量。

(2)静态局部变量:

由于局部变量的作用域本身就被限定在了函数体内,所以不存在是否在其他文件中使用的争论,这里的static修饰,使得局部变量具有了全局变量的一些属性。在函数第一次被执行时,静态局部变量就被初始化,在函数执行完毕之后,这个静态局部变量并不会被销毁,而是继续在内存中存在。在以后的函数执行中,这个变量的初始化语句不会被再次执行,但其赋值语句会每次都会被执行,函数执行完毕之后,变量的值就在内存中更新并不会销毁。

二:static修饰函数

使得函数的访问属性变为只能在本文件中访问。由于C语言有着比较悠久的历史,在发展过程中,不想增加其他的关键字,所以使用了static这个关键字来赋予这个新的语法特性和含义。

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...