大家好,今天小编关注到一个比较有意思的话题,就是关于c 语言 static 函数的问题,于是小编就整理了4个相关介绍c 语言 static 函数的解答,让我们一起看看吧。
- C语言static可以用什么代替?
- 请问static什么意思?
- Subxx(aAsInteger)StaticxAsIntegerx=x+aPrintx;EndSubPrivateSubCommand1_Click()xx?
- static变量和CONST的区别是什么?谢谢?
C语言static可以用什么代替?
最主要有两点用途。
1. 让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。
在C语言中,static关键字可以用其他方式来实现相同的功能。可以使用全局变量来替代静态变量,或者使用函数内的static变量来保持其作用域仅限于该函数。
此外,可以使用宏定义来替代静态常量,或者使用局部变量和指针来模拟静态数组的功能。
另外,也可以通过多文件编程来达到静态函数和静态全局变量的效果,将其声明为static并将其定义放在单独的源文件中,然后在需要的文件中引用。总之,虽然C语言中没有直接的替代方法,但是可以通过不同的方式来实现相同的功能。
请问static什么意思?
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
static的第二个作用是保持变量内容的持久。static的第三个作用是默认初始化为0!最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。
Subxx(aAsInteger)StaticxAsIntegerx=x+aPrintx;EndSubPrivateSubCommand1_Click()xx?
楼上正解,附上MSDN的解释: Static函数表示在调用之间保留Sub 过程的局部变量的值。
Static 属性对在 Sub 外声明的变量不会产生影响,即使过程中也使用了这些变量。
static变量和CONST的区别是什么?谢谢?
const和staticconst的区别:
一、全局的区别const规定变量在全局中是只读的变量,并且它的值无法被修改。staticconst规定变量在当前的模块中是只读的变量,无法再全局中被其他模块读取。
二、文件的区别const定义的指针,不赋初值编译时不报错,在初始化时应说明指针的指向。staticconst不能在定义对象时对变量初始化,就是不能用构造函数来初始化。
三、函数的区别const只能通过构造函数初始化列表进行,并且必须有构造函数。staticconst是静态的,属于类的静态成员函数。
四、类的区别const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同,所以不能在类声明中初始化const数据成员。staticconst初始化在类体外进行,初始化时不加该成员的访问权限控制符private,public等,并且初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。
到此,以上就是小编对于c 语言 static 函数的问题就介绍到这了,希望介绍关于c 语言 static 函数的4点解答对大家有用。