C语言中static关键字三个作用,实例代码图文详解
一篇文章了解C语言静态关键字的三个函数

更新时间: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语言静态关键字内容,请搜索脚本的上一篇文章,或继续浏览以下相关文章,希望每个人将来都会支持脚本!