1. > 电脑手机 >

c语言static是什么意思 success

c语言中static说明是什么意思?

在VB,C#,C,C++,Java中可以看到static作为关键字和函数出现,在其他的高级计算机语言如FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、PROLOG、Ada等语言中也是有出现的,只是有着不同的作用。

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

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

内部函数(又称静态函数)

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

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

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

{……}

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

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

外部函数:

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

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

{……}

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

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

[案例]外部函数应用。

⑴文件mainf.c

main()

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

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

}

⑵文件subf1.c

……

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

{……}

⑶文件subf2.c

……

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

{……}

⑷文件subf3.c

……

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

{……}

static在c语言中是什么意思

写在局部变量前面表示变量是静态变量,函数调用结束后变量不回收。

写在全局变量前面,表示静态全局变量,该变量只能在本文件中访问,不可以被其余地方extern。

static 出现在不同的地方含义不同的。

如果是在函数之外使用,表示该对像在此文件中是全局可访问的,在文件之外是不可访问的。

如果出现在函数内部,则表示该变量不是自动变量,它是一个可以初始化的变量(如果不进行显式初始化,默认值是0)。改变了它的值以后,函数结束时它的值也会保留。

扩展资料:

static int n; //定义静态全局变量改为int n; //定义全局变量

再次编译运行程序,细心体会全局变量和静态全局变量的区别。

全局变量是不显式用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。

全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。

参考资料来源:百度百科-static

C语言中static是做什么用的?

有两种用法:

1、static修饰局部变量,成为一个局部静态变量。

static修饰局部变量(静态局部变量)与普通局部变量相比,它的优势在于:

①静态局部变量作用域与连接属性与普通局部变量一样;

②存储类:静态局部变量分配在data/bss段,普通局部变量在栈上;

③生命周期:因为存储类的不同,静态局部变量的生命周期得到延长了,直到程序结束。

2、static修饰全局变量与函数,成为静态全局变量与静态函数。

static修饰全局变量\函数 与 普通全局变量\普通函数相比,它的优势在于:

①存储类、生命周期、作用域都一样;

②差别在于static修饰全局变量\函数连接属性是内连接,普通全局变量\普通函数是外链接;

③就是说static修饰全局变量\函数不能跨文件访问调用。

扩展资料:

在类内数据成员的声明前加上static关键字,该数据成员就是类内的静态数据成员。其特点如下:

静态数据成员存储在全局数据区,静态数据成员在定义时分配存储空间,所以不能在类声明中定义

静态数据成员是类的成员,无论定义了多少个类的对象,静态数据成员的拷贝只有一个,且对该类的所有对象可见。也就是说任一对象都可以对静态数据成员进行操作。而对于非静态数据成员,每个对象都有自己的一份拷贝。

由于上面的原因,静态数据成员不属于任何对象,在没有类的实例时其作用域就可见,在没有任何对象时,就可以进行操作

和普通数据成员一样,静态数据成员也遵从public, protected, private访问规则

静态数据成员的初始化格式:<数据类型><类名>::<静态数据成员名>=<值>

类的静态数据成员有两种访问方式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>

c语言中static说明是什么意思?

static 用来说明静态变量。

1、如果是在函数外面定义的,那么其效果和全局变量类似,即static说明的变量可以在当前c程序文件中使用。

c语言static是什么意思 successc语言static是什么意思 success


2、如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,我们再次调用该函数时,仍是保存的上一次函数调用时保存的结果。

扩展资料:

c语言中的static有三个主要作用:

1、隐藏性。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

2、static可以保持变量内容的持久,当static定义变量在函数内部时,改变量值的生命周期和全局变量相同。

3、static可以令其定义变量内存区所有字节默认初始化为0,这一特点可以省去程序员许多麻烦,减少工作量。

参考资料来源:百度百科-Static(计算机高级语言)

在C语言中static有什么含义

“是不止一个意思,要看用到哪里。比如: static int a; int b; void func(void) { static int c; int d; } 在这里,a与b都是全局变量,二者的区别是,b可以被别的文件使用,a只能在本文件中使用,这是static对全局变量的作用。 c...”

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

static可应用于应用于内部变量、外部变量和函数。应用于内部变量时,其作用是用来指定变量的存储类别为静态变量。应用于外部变量和函数时,其作用是限制变量或函数的作用范围仅限于外部变量或函数所在的源文件。

1、在整个程序运行的过程中,无论静态内部变量所在的函数被调用了多少次,静态内部变量只运行一次初始化,即在程序运行时完成的。

2、在函数的两次调用期间,静态内部变量所在存储单元不被释放,因而当前次函数调用执行时其值会被保存下来,下次调用时该值依然存在。即静态内部变量的值在从一次函数调用到下一次函数调用到下一次函数调用到下一次函数调用之间保持不变。

3、 默认情况下,外部变量的作用域是从定义变量的位置到所在源文件的末尾。

一、函数分为内部函数和外部函数

c语言static是什么意思 successc语言static是什么意思 success


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

1、内部函数(又称静态函数)

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

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

static 函数类型 函数名(函数参数表){??}

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

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

2、外部函数

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

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

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

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

二、C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

c语言static是什么意思 successc语言static是什么意思 success


尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

static的作用

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。

1、最重要的一条:隐藏。

同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。

加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。

2、static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。

3、static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。比如初始化一个稀疏矩阵,我们可以一个一个地把所有元素都置0,然后把不是0的几个元素赋值。

如果定义成静态的,就省去了一开始置0的操作。再比如要把一个字符数组当字符串来用,但又觉得每次在字符数组末尾加’\0’太麻烦。如果把字符串定义成静态的,就省去了这个麻烦,因为那里本来就是’\0’。

最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

参考资料来源:

百度百科-static函数

百度百科-c语言

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息