c 语言 static 函数,C语言static函数

kodinid 5 0

大家好,今天小编关注到一个比较意思的话题,就是关于c 语言 static 函数问题,于是小编就整理了4个相关介绍c 语言 static 函数的解答,让我们一起看看吧。

  1. C语言static可以用什么代替?
  2. 请问static什么意思?
  3. Subxx(aAsInteger)StaticxAsIntegerx=x+aPrintx;EndSubPrivateSubCommand1_Click()xx?
  4. static变量和CONST的区别是什么?谢谢?

C语言static可以什么代替?

最主要有两点用途。

1. 让一个变量长期有效,而不管其是在什么地方被申明。比如:

c 语言 static 函数,C语言static函数-第1张图片-安济编程网
图片来源网络,侵删)

int fun1()

{

static int s_value = 0;

c 语言 static 函数,C语言static函数-第2张图片-安济编程网
(图片来源网络,侵删)

....

}

那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。

c 语言 static 函数,C语言static函数-第3张图片-安济编程网
(图片来源网络,侵删)

2.避免多个文件使用了相同的变量名而导致冲突

在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点解答对大家有用。

标签: 变量 static 函数