快速了解C语言静态关键字static的作用

时间:2022-11-09 18:34:41

静态关键字static

C语言中,static关键字修饰变量和函数

1、局部变量

2、全局变量

3、函数

修饰局部变量

1、用静态关键字static修饰的局部变量,在编译的过程中,会在数据区为该变量开辟空间,并对其进行初始化,如果代码中未对其进行初始化,则系统默认初始化为0

2、用static修饰的局部变量,会延长局部变量的寿命,超出函数的生存期

3、对静态关键字修饰的局部变量的初始化

以下面两个变量a和变量为b进行说明,在编译过程中,发现变量a和b是静态变量,会标识变量a与b,等到程序运行的时候,在主函数调用之前,对变量a和变量b分配空间,并对变量a进行初始化,由于变量b是由函数fun传递的参数进行初始化的,故会在程序调用函数时对变量b进行初始化,对变量b初始化之前,会检查变量b的标识位,如果标识位为0,就会拿函数参数x对其进行初始化,标识位为1就不进行初始化

static int a = 0;(编译过程进行初始化)

static int b = x;(运行该代码的时候进行初始化)

?
1
2
3
4
5
6
7
void fun(int x)
{
    static int a = 10;
    static int b = x;
    a++;
    b++;
}

修饰全局变量变量

用静态关键字static修饰全局变量的意义、

可见性不一样,加上静态关键字后,只对当前文件有效,对其他文件无效,并且有效区间从定义位置开始,一直到本文件结束

修饰函数

静态关键字static修饰函数的意义

可见性不一样,在函数前加上静态关键字static,该函数也只能是当前文件可用,其他文件不可用

到此这篇关于快速了解C语言静态关键字static的作用的文章就介绍到这了,更多相关C语言static关键字内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_44292347/article/details/106376363?utm_medium=distribute.pc_category.none-task-blog-hot-4.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-4.nonecase&request_id=