C语言中static关键字三个作用,实例代码图文详解

一篇文章了解C语言静态关键字的三个函数

C语言中static关键字三个作用,实例代码图文详解

更新时间:2022年4月12日08:20:34作者:野猪页面

本文主要介绍C语言静态关键字的三个函数。本文通过实例代码图形的组合向您介绍了它。需要它的朋友可以参考它。

目录

静态修饰符本地变量

图1:测试功能中定义的一个局部变量。本地变量在堆栈区域开放空间。使用堆栈区域的使用是,它在输入可变生命周期时会自动为其打开空间。因此,每次在此处调用测试功能时,A都会重新定义并初始化为0,因此10 1在屏幕上打印出来;

图2:在使用静态修改修改A后,我们发现屏幕是从1到10打印的,好像每次调用测试函数后未破坏A。相反,它继续使用。基于执行++操作。

因此,静态修改本地变量的作用是改变局部变量的生命周期,该变量本质上改变了局部变量的存储位置,以便局部变量不再在堆栈区域打开空间,而是直接打开空间静态区域。结果,本地变量具有与全球变量相同的生命周期,也就是说,随着整个程序的生成和破坏。

为了更深入地了解静态修改本地变量的作用:图3,我们的程序从源文件(.c文件)更改为可执行程序(.EXE文件)。预处理,编译和组装三个阶段。在组装阶段,编译器将我们的C语言代码转换为汇编代码,每个C语言语句对应于多个句子编译代码。观察到只有静态int a = 0;该语句没有相应的汇编代码,也就是说,C语言将在编译时直接跳过此句子。

本质上:在编译链接的编译阶段,编译器将为静态修改的局部变量分配空间,因此C程序将直接跳过操作过程中静态修改的语句。即使在上面调用测试函数时,静态int a = 0;该语句将不会执行。

静态修改全局变量

图1图2比较分析:我在add.c中定义了一个全局变量g_val。由于全局变量具有外部链接属性,因此我只需要在test.c中使用g_val即可正常使用它,但是当我使用static修改G_VAL时,我们发现编译器说G_VAL是无法解析的外部符号。

因此,静态修改全局变量的作用是:全局变量的外部链接属性(可以在其他源文件中访问)使其成为内部连接属性,全局变量的范围变得较小。

静态修改功能

图1图2比较分析:此处与静态变量非常相似。我在add.c中定义了一个添加函数。由于该函数还具有外部链接属性,因此我只需要在test.c中的test.c函数中声明添加函数。之后,可以正常使用它,但是当我使用static修改添加函数时,我们发现编译器说add是无法解析的外部符号。

因此,静态修改功能的作用是更改该函数的外部链接属性(可以在其他源文件中访问),以使其成为内部连接属性(只能在此文件中访问)。动作范围已经较小。

总结

此时,此处介绍了有关C-语言静态关键字的三个函数的一篇文章。有关更多相关的C语言静态关键字内容,请搜索脚本的上一篇文章,或继续浏览以下相关文章,希望每个人将来都会支持脚本!

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

85阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

85阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

77阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读