今天给各位分享c语言tatic的知识,其中也会对爱心代码编程C语言进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、c语言中static 到底有啥作用啊?2、C语言中static关键字作用3、C语言中static是做什么用的?
c语言中static 到底有啥作用啊?
在C语言中,static的作用有三个,分别如下:
1、隐藏;
当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。
2、保持变量内容的持久;
存储在静态数据区的变量会在程序刚开始运行时就完成初
始化,也是唯一的一次初始化。
3、默认初始化为0;
在静态数据区,内存中所有的字节默认值都是0x00,某些
时候这一特点可以减少程序员的工作量。
C语言中static关键字作用
static修饰变量
1 在块中使用static修饰变量
它具有静态存储持续时间、块范围和无链接。
即作用域只能在块中,无法被块外的程序调用;变量在程序加载时创建,在程序终止时结束。
它只在编译时初始化一次。如果没有显式初始化,默认初始化为0.
程序执行结果:
(1) 这里变量stay ,它从程序加载时开始存在,直到程序终止。但是它的范围仅限于trystat() 函数块。只有当这个函数执行时,程序才能使用stay 访问它指定的对象.
(2) 变量stay 记得它的值增加了1,但是变量fade每次都会重新开始。这指出了初始化的不同之处:fade 在trystat() 每次调用都从新初始化,而stay 变量只初始化一次。
(3) 静态变量在程序加载到内存之后就已经就位了。将语句static int stay = 1; 放在trystat()函数中告诉编译器,只允许trystat() 函数查看变量;它不是在运行时执行的语句。
2 在任何函数外部使用static修饰变量
它具有静态存储时间、文件范围和内部链接。
即作用域在当前文件之中(只能被同一文件中的函数使用),无法被其他文件调用
它只在编译时初始化一次。如果没有显式初始化,默认初始化为0。
使用static修饰函数
作用域限制在当前定义的文件中使用,从而避免了多文件函数名称冲突的可能性。通常文件中不作为接口的函数,建议使用static修饰,这样避免不同文件使用相同的函数名发生冲突。
上述为某平台使用DA播放wav的程序片段,
上述函数为内部函数使用static 修饰。
上述两个函数为模块接口(初始化DA和播放wav功能)供外部调用,没有使用static修饰。
原文:
C语言中static是做什么用的?
最主要有两点用途。
让一个变量长期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
….
}
那么fun1不管在什么地方被调用,当函数退出后,s_value最后的值将一直会被系统保存(相当于一个全局变量),下次s_value再被用到时,也即当fun1()再次被调用时,s_value初始值将是最近被保存过的值(请注意s_value初始化操作只会被执行一次,即上述s_value =0 这个语句)。
2.避免多个文件使用了相同的变量名而导致冲突
比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。
关于c语言tatic和爱心代码编程C语言的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。