c语言中static变量使用方法

c语言中static变量使用方法,第1张

c语言中static变量使用方法,第2张

1.静态变量
静态变量的类型说明符是静态的。静态变量当然属于静态存储方式,但是属于静态存储方式的量不一定是静态变量。比如,外部变量虽然属于静态存储模式,但不一定是静态变量,必须由static定义,才能成为静态外部变量,或者静态全局变量。
2。静态局部变量
静态局部变量属于静态存储模式,具有以下特点:
(1)静态局部变量将其生存期定义为函数中的整个源程序,但其作用域仍与自动变量相同,因此只能在定义它的函数中使用。退出该功能后,虽然变量仍然存在,但无法使用。
(2)允许将初始值赋给构造类的静态局部量,如数组。如果没有分配初始值,系统将自动分配值0。
(3)如果描述中基本类型的静态局部变量没有赋初值,系统会自动赋0。但是,如果没有给自动变量一个初始值,它的值是不确定的。根据静态局部变量的特点,可以看出它是一个生存期为整个源程序的量。虽然离开定义它的函数后就不能使用了,但是如果再次调用定义它的函数,就可以继续使用,保存上次调用后留下的值。所以,当一个函数被多次调用,并且需要在调用之间保持某些变量的值时,可以考虑静态局部变量。虽然全局变量也可以达到上述目的,但全局变量有时会产生意想不到的副作用,所以最好使用局部静态变量。
3。静态全局变量
全局变量(外部变量)的描述前面加static,形成静态全局变量。全局变量本身就是静态存储方法,静态全局变量也是静态存储方法。两者在存储方式上没有区别。虽然两者的区别在于非静态全局变量的作用范围是整个源程序,但是当一个源程序由多个源文件组成时,非静态全局变量在每个源文件中都是有效的。但静态全局变量限制了它的作用域,即它只在定义该变量的源文件中有效,不能在同一源程序的其他源文件中使用。因为静态全局变量的范围被限制在一个源文件中,它们只能被那个源文件中的函数共享,所以它可以避免在其他源文件中引起错误。从上面的分析可以看出,把局部变量改成静态变量,改变了它的存储方式,也就是它的生存期。把全局变量改成静态变量,改变了它的作用域,限制了它的使用范围。因此,静态说明符的作用在不同的地方是不同的。
4。静态函数...
内部函数和外部函数
当一个源程序由多个源文件组成时,C语言根据函数是否能被其他源文件调用,将函数分为内部函数和外部函数。
1内部函数(也称静态函数)
如果一个源文件中定义的函数只能被该文件中的函数调用,而不能被同一程序的其他文件中的函数调用,则该函数称为内部函数。
定义内部函数,只需在函数类型前加一个“static”关键字,如下图:
static function type函数名称(函数参数列表)
{…}
关键字“static”翻译成中文就是“静态”的意思,所以内部函数不过,这里“静态”的意思不是指存储方式,函数的作用范围只限于本文档。
使用内部函数的好处是,不同的人在编写不同的函数时,不用担心自己定义的函数会不会和其他文件中的函数同名,因为同名并不重要。
2外部函数
外部函数的定义:在定义函数时,如果没有添加关键字“static”或在前面加上关键字“extern”,则表示该函数是外部函数:
[extern]函数类型函数名称(函数参数表)
{…} [/
Case]外部函数应用。
(1)file mainf . c
main()
{ extern void input(…),process (…),output(…);
输入(…);进程(…);输出(…);
}
(2)file sub f1 . c
...
外部void输入(...)/*定义外部函数*/
{...}
(3)文件subf2。extern void进程(……) /* *定义外部函数*/
{…}
(4)文件sub F3 . c
……
外部void输出(……) /*定义外部函数*/[/br/

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » c语言中static变量使用方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情