100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言 Static关键字的作用详解

C语言 Static关键字的作用详解

时间:2020-02-15 11:15:14

相关推荐

C语言 Static关键字的作用详解

前言:

static 是用来修饰函数和变量的,可以修饰局部变量,全局变量以及函数

一、修饰局部变量 (称为静态局部变量)

来看俩段代码:

对于第一段代码来说,它循环5次,每次调用一下fun()函数,而fun()函数每次进去的时候,x的值都为0,所以,当x++后,每次输出的值都为1

对于第二段代码来说,与第一种情况相类似,循环5次,每次输出x的值;但是,与第一段代码不相同的是,x是由static定义的, static对x 只定义一次,x的值不会随着fun()这个函数的结束而被释放掉,直到程序结束,它的生命周期才结束。所以每次fun()函数执行的时候,x的值都会在原来值的基础上加1.

当然,用static修时变量时,其默认值为0

二、修饰全局变量 (称为静态全局变量)

当static修饰全局变量时,只能在当前源文件使用,不能在其他源文件下使用

extern int x:声明x为其他文件的变量;我们可以发现编译不通过,但是如果将static关键字移除,程序就可以通过:

三、修饰函数 (称为静态函数)

当static修饰函数的时候,此函数只能在当前源文件使用,不能在其他源文件下使用

当fun()函数未被static修饰时,在 源.cpp 中可以正常执行 test.cpp 中的 fun() 函数,程序正常运行

然而,当fun()函数被static修饰时,程序就会出错

四、总结

1.当static修时局部变量时,变量只能被初始化一次,且static静态局部变量,其生命周期为整个进程,直到程序结束。(static修时变量时,默认值为0)

2.当static修时全局变量时,只在当前源文件有效,不能在其他源文件使用

3.当static修时函数时,只在当前源文件有效,不能在其他源文件使用

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。