c语言函数前面是static。

有两种用途:

1.static修改局部变量,成为局部静态变量。

与普通局部变量相比,静态修改局部变量有以下优点:

①静态局部变量的作用域和连接性质与普通局部变量相同;

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

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

2.static将全局变量和函数修改为静态全局变量和静态函数。

与普通全局变量\普通函数相比,静态修改的全局变量\函数有以下优点:

①存储类别、生命周期、范围相同;

②不同的是,static修饰全局变量\函数连接属性是内连接,普通全局变量\普通函数是外连接;

(3)也就是说static修改全局变量\和函数不能跨文件访问和调用。

扩展数据:

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

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

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

基于以上原因,静态数据成员不属于任何对象,当没有类的实例时,它们的作用域是可见的,当没有对象时,它们可以被操作。

像普通的数据成员一样,静态数据成员也遵循公共的、受保护的、私有的访问规则。

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

有两种方法可以访问类的静态数据成员:类对象名、静态数据成员名或类类型名::静态数据成员名。

C语言中静态描述是什么意思? 静态用于描述静态变量。

1.如果在函数外部定义,其效果类似于全局变量,即静态描述的变量可以在当前C程序文件中使用。

2.如果在函数内部定义,这个变量只初始化一次。即使再次调用这个函数,这个静态变量也不会被再次初始化。因此,该变量的值将始终被保存。当我们再次调用这个函数时,仍然是上次函数调用保存的结果。

扩展数据:

C语言中的Static有三个主要功能:

1.隐蔽。当我们同时编译多个文件时,所有不带静态前缀的全局变量和函数都具有全局可见性。

2.静态可以保持变量内容的持久性。当static在函数内部定义变量时,改变大小的生命周期与全局变量的生命周期相同。

3.static可以默认将自己定义的变量内存区的所有字节初始化为0,这样可以省去程序员很多麻烦,减少工作量。

参考来源:百度百科-静态(计算机高级语言)

C语言中函数声明前可以加static吗?如果有,意味着什么? 当然可以。

私有函数只能由该类的成员变量或成员函数访问。在C语言中,还有一个“私有函数”,它是面向对象编程中完成私有函数功能的下一个静态函数。

当你的程序里有很多源文件的时候,你肯定会让一个源文件只提供一些外界需要的接口。可能会编写其他函数来实现这些接口,你可能不希望这些其他函数被外界看到(非源文件)。这时,你可以用static修改这些“其他函数”。

所以静态函数的作用域是源文件,就当它是面向对象中的私有函数吧。

向函数声明中添加static的优点是:

当链接多个文件时,静态函数仅在文件域内可见。

C语言中在函数定义前加static是什么意思? 表示静态函数。

只能在这个文件中调用。

不能被同一项目中的其他C文件调用。

使用静态可以避免不想被其他模块调用的函数调用

同时,不同文件中的静态函数可以被重命名。

降低命名难度。

C语言中static是什么意思? 1.修改变量

变量分为局部变量和全局变量,但它们都存储在内存的静态区域。静态全局变量的作用域仅限于定义该变量的文件,其他文件即使使用extern也不能使用。准确地说,范围从定义的开头开始,到文件的结尾结束。在它之前定义的代码行也不能使用。

静态局部变量,在函数体中定义,只能在本函数中使用,同一文档中的其他函数不能使用。因为static修改的变量总是存在于内存的静态区域,所以即使函数结束,这个静态变量的值也不会被破坏,函数下次仍然可以使用这个值。

2.修饰功能

在函数前添加static使其成为静态函数。不过这里的“静态”的意思并不是指存储方式,而是指函数的作用范围仅限于这个文件(所以也叫内部函数)。使用内部函数的好处是,不同的人写不同的函数时,不用担心自己定义的函数是否会和其他文件中的函数同名。

关键字static有一段不寻常的历史。起初,关键字static是在C中引入的,用来表示在退出块后仍然存在的局部变量。随后,static在C中有了第二层含义:用来表示其他文件无法访问的全局变量和函数。为了避免引入新的关键字,仍然使用静态关键字来表达这第二层含义。

相关文章

发表新评论