社区
C语言
帖子详情
static 函数的 用途?
bulala
2005-10-18 10:56:31
如题
...全文
3237
9
打赏
收藏
static 函数的 用途?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vedon_fu
2010-06-12
打赏
举报
回复
学习了。。。
hyljyrw
2005-10-18
打赏
举报
回复
我也不太明白,静态用于何处,意思我是明白的,可是用在什么地方呢?
xuanwenchao
2005-10-18
打赏
举报
回复
只在同一个源文件中可用.
慢慢来还不行么
2005-10-18
打赏
举报
回复
刚自己搜索了类似问题 ,贴点别人的解释
1、静态全局变量(又称全局静态变量):
(1) 静态全局变量的定义:在全局变量前加一个static,使该变量只在这个源文件中可用。
(2)全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(3)静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
例如:一个程序由两个源文件组成,其中在一个源文件中定义了“int n;”,在另一个源文件中定义了“static int n;”则程序给它们分别分配了不同的空间,两个值互不干扰。
例如:下面在file1.cpp中声明全局变量n,在file2.cpp中定义全局静态变量n。文件file1.cpp和file2.cpp单独编译都能通过,但连接时,file1.cpp中的变量n找不到定义,产生连接错误。
// file1.cpp
# include <iostream.h>
void fn()
extern int n;
void main()
{
n=20;
cout<<n<<endl;
fn();
}
// file2.cpp
# include <iostream.h>
static int n; // 默认初始化为0,注意此处定义的n 只能在file2.cpp中使用。
void fn()
{
n++;
cout<<n<<endl;
}
2、静态函数:使某个函数只在一个源文件中有效,不能被其他源文件所用。
定义:在函数前面加上static。
说明:函数的声明和定义默认情况下在整个程序中是extern的。
静态函数的效果:
(1)它允其他源文件建立并使用同名的函数,而不相互冲突。
(2) 声明为静态的函数不能被其他源文件所调用,因为它的名字不能得到。
d0347
2005-10-18
打赏
举报
回复
static 函数 不能被外部文件调用的,只能被在本文件调用的
函数默认为 extern 既可在本文件内使用,也可在外部文件被调用的
csucdl
2005-10-18
打赏
举报
回复
静态应该是说该变量是在程序运行完毕后才释放的
而一般的自动变量则在离开所在函数作用域后就释放了
顺便说一下变量有四种存储方式
1、auto
2、static
3、extern
4、register
doway
2005-10-18
打赏
举报
回复
C++ 中可以不同这东西,因为 C++ 支持函数和名称空间。但 JAVA、C# 中要是没这东西就死定了。
kokoshan
2005-10-18
打赏
举报
回复
静态在一般情况下都应该是全局变量吧,在整个程序运行过程中都不能更改的。
例如你计算1!-5!,且从1到5都需要输出,则定义为静态的。
ruiding
2005-10-18
打赏
举报
回复
说明:函数的声明和定义默认情况下在整个程序中是extern的
是这样吗。。
《c语言深度解析》第3、4章 存储类、生命周期、作用域、链接域,指针与
函数
课程内容:第3章:存储类与auto、
static
、register关键字指令、常量、变量的生命周期变量与
函数
的作用域链接域与extern、
static
关键字声明的意义第4章:存储空间、符号、地址一级指针与多级指针野指针与段错误void *指针类型const与指针
函数
指针
函数
调用—栈的使用过程回调
函数
和
函数
指针数组指针与
函数
传参递归
函数
内联
函数
深入
static
的
用途
?
来自中兴笔试题目:
static
的
用途
? 1.隐藏:把变量的可见范围限制在编译单元中,使它成为一个内部连接; 2.静态存储:使得变量或对象的存储形式变成静态存储; 3.初始化为0 4.类中的
static
成员 (1)隐藏(即限定作用域):全局变量和
函数
同时编译多个文件时,所有未加
static
前缀的全局变量和
函数
都具有全局可见性。 被staitc修饰的全局变量或
函数
都被编译器标记
static
有什么
用途
?
static
有什么
用途
? 定义静态变量 定义静态全局变量 在普通全局变量前加关键字
static
就声明成了静态全局变量。如果没有初始化,则其默认值为0。二者的存储方式一样,均存储在静态存储区。然而二者的作用域发生了变化。非静态的全局变量作用域是整个源程序,比如说一个源程序中包含多个文件,则非静态的全局变量在各个文件中均有效。而
static
全局变量则限制了其作用域只能在定义了该变量的文件内,在其他文件...
【朝花夕拾】
static
有什么
用途
?(请至少说明两种)
题目:
static
有什么
用途
?(请至少说明两种) 参考答案: 在
函数
体,一个被声明为静态的变量在这一
函数
被调用过程中维持其值不变。 在模块内(但在
函数
体外),一个被声明为静态的变量可以被模块内所用
函数
访问,但不能被模块外其它
函数
访问。它是一个本地的全局变量。 在模块内,一个被声明为静态的
函数
只可被这一模块内的其它
函数
调用。那就是,这个
函数
被限制在声明它的模块的本地范围内使用 ...
static
的作用
1.
static
有什么
用途
?(请至少说明两种) 1)在
函数
体,一个被声明为静态的变量在这一
函数
被调用过程中维持其值不变。 2) 在模块内(但在
函数
体外),一个被声明为静态的变量可以被模块内所用
函数
访问,但不能被模块外其它
函数
访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的
函数
只可被这一模块内的其它
函数
调用。那就是,这个
函数
被限制在声明它的模块的本地范...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章