Static是什么意思啊,在C程序里面

如题所述

第1个回答  2019-12-31
编辑本段C中的static函数
分类

static
函数内部函数和外部函数

当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。
内部函数

(又称静态函数)

如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。

定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:

static
函数类型
函数名(函数参数表)

{……}

关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。

使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。
外部函数

外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:

[extern]
函数类型
函数名(函数参数表)

{……}

调用外部函数时,需要对其进行说明:

[extern]
函数类型
函数名(参数类型表)[,函数名2(参数类型表2)……];

[案例]外部函数应用。

(1)文件mainf.c

main()

{
extern
void
input(…),process(…),output(…);

input(…);
process(…);
output(…);

}

(2)文件subf1.c

……

extern
void
input(……)
/*定义外部函数*/

{……}

(3)文件subf2.c

……

extern
void
process(……)
/*定义外部
函数*/

{……}

(4)文件subf3.c

……

extern
void
output(……)
/*定义外部函数*/

{……}
第2个回答  2020-01-12
static可应用于应用于内部变量、外部变量和函数。应用于内部变量时,其作用是用来指定变量的存储类别为静态变量。应用于外部变量和函数时,其作用是限制变量或函数的作用范围仅限于外部变量或函数所在的源文件。
1)在整个程序运行的过程中,无论静态内部变量所在的函数被调用了多少次,静态内部变量只运行一次初始化,即在程序运行时完成的。
2)在函数的两次调用期间,静态内部变量所在存储单元不被释放,因而当前次函数调用执行时其值会被保存下来,下次调用时该值依然存在。即静态内部变量的值在从一次函数调用到下一次函数调用到下一次函数调用到下一次函数调用之间保持不变。
3)
默认情况下,外部变量的作用域是从定义变量的位置到所在源文件的末尾。
相似回答