社区
C语言
帖子详情
C语言中的static函数跟非static函数有什么区别,什么时候用static函数
nokiaisacat
2010-07-23 03:04:34
C语言中的static函数跟非static函数有什么区别,什么时候用static函数
...全文
1308
27
打赏
收藏
C语言中的static函数跟非static函数有什么区别,什么时候用static函数
C语言中的static函数跟非static函数有什么区别,什么时候用static函数
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wenn
2010-10-21
打赏
举报
回复
谢谢!学习了
jinchats
2010-07-24
打赏
举报
回复
用static 修饰的函数的生存周期是整个程序,但是作用域只是定义该函数的源文件。该源文件外的其它函数都不能调用static 函数。
而非static 函数的生存周期是整个程序,作用域也是整个程序。该源文件外的其它函数可以先声明该函数,然后调用。
cao_julians
2010-07-24
打赏
举报
回复
对于函数而言,static和extern两个关键字的意义相反
static函数的作用域在当前文件中
extern函数的作用域在当前工程(无论有多少个源码文件)中,而C中对函数的默认设置(不写关键字时)就是extern。
Thirty
2010-07-24
打赏
举报
回复
再次学习。。。
中衣
2010-07-24
打赏
举报
回复
来看一
nokiaisacat
2010-07-24
打赏
举报
回复
以上各位的解释都已经拜读,学习了,现在比较忙,晚上慢慢给分
nokiaisacat
2010-07-24
打赏
举报
回复
以上各位的解释都已经拜读,学习了,现在比较忙,晚上慢慢给分
hrx1989
2010-07-24
打赏
举报
回复
[Quote=引用 1 楼 ayw215 的回复:]
C/C++ code
静态函数在c中只有用来表示不能被其它文件访问的全局函数这这一个作用
1. 静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。
2. 关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 使用内部函数的好……
[/Quote]
学习了!!!
Simao
2010-07-24
打赏
举报
回复
学习了...
hyuanqing
2010-07-24
打赏
举报
回复
static 不是能让调用后变量的值在下次调用时依然不变吗?
不用static的话调用过一次再调用时值就不与第一次相同了。
这个算是简明的说用途吧。
fdisksys
2010-07-24
打赏
举报
回复
static型函数我一直以为是返回值的类型,悲剧
俊哥有个blog
2010-07-23
打赏
举报
回复
这家伙是自动回帖吗?
[Quote=引用 11 楼 zhao4zhong1 的回复:]
本质上就是将本来保存在堆栈中的临时变量改为保存在全局变量区
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
[/Quote]
zecard_fu
2010-07-23
打赏
举报
回复
接分 接分
东莞某某某
2010-07-23
打赏
举报
回复
在引擎里搜下 一大箩筐的总结
aozhi
2010-07-23
打赏
举报
回复
链接属性不一样。
static函数是local的,其他模块代码不能调用。
没有static的函数是external的,其他模块代码可以调用。
wissup
2010-07-23
打赏
举报
回复
static 表明只能在这个文件中使用
赵4老师
2010-07-23
打赏
举报
回复
本质上就是将本来保存在堆栈中的临时变量改为保存在全局变量区
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
(Linux或Unix下应该也可以在用GDB调试时,看每句C对应的汇编。)
jldream110
2010-07-23
打赏
举报
回复
static 在函数体外表示 链接属性 是内部。 也就是说 其他源文件不能引用 声明 static的函数
aaabianhuakai
2010-07-23
打赏
举报
回复
大家都说完了
表象上就是加了static别的文件引用这个函数会出错
cattycat
2010-07-23
打赏
举报
回复
static限制函数是内部链接的,其他文件中不可用。
再深入点就是飞雪说的,不用在跳转表中加这个表项,其他外部链接的得加,因为可能在外部被调用了。
再说一句,飞雪果然牛啊。
加载更多回复(7)
C语言
静态变量和静态
函数
C_语言静态变量和静态
函数
,可以让您对
C语言
静态变量和静态
函数
有更清晰的认识
C语言
中
static
的作用.pdf
在
C语言
中
,关键字
static
有以下几种作用: 修饰局部变量: 当
static
用于
函数
内部的局部变量时,它使得该变量变为静态局部变量。静态局部变量只在第一次进入其所在
函数
时初始化一次,并且其生命周期从程序开始运行持续到程序结束,而不是每次
函数
调用时都重新初始化。即使
函数
退出,静态局部变量的值也会保留,下次调用
函数
时仍可以访问之前保存的值。 修饰全局变量: 若全局变量被声明为
static
,则称其为静态全局变量。静态全局变量的作用域仅限于定义它的源文件内,即外部文件无法通过extern关键字来引用此变量,增强了封装性。 修饰
函数
: 静态
函数
也是在全局作用域内使用
static
关键字声明的
函数
。静态
函数
的作用范围局限于当前编译单元(即包含它的源文件),不能被其他文件
中
的
函数
直接调用。这有助于隐藏实现细节,减少不同模块间的耦合度。 总结起来,
static
关键字主要影响了变量或
函数
的存储期(生命周期)和作用域,使其具有持久性和/或更有限的可见性。
C语言
中
static
的作用及
C语言
中
使用静态
函数
有何好处
在
C语言
中
,
static
的作用有三条:一是隐藏功能,二是保持持久性功能,三是默认初始化为0。本文重点给大家介绍
C语言
中
static
的作用及
c语言
中
使用静态
函数
有何好处,对本文感兴趣的朋友一起看看吧
C语言
static
修饰
函数
详细解析
以下是对
C语言
中
的
static
修饰
函数
进行了详细的分析介绍,需要的朋友可以过来参考下
c语言
中
static
的用法详细示例分析
static
在c里面可以用来修饰变量,也可以用来修饰
函数
。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。 代码如下:int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。
static
对全局变量的修饰,可以认为是限制了只能是本文件引用此变量。有的程序是由好多.c文件构成。彼此可以互相引用变量,但加入
static
修饰之后,只能被本文件
中
函数
引用此变量。
static
对栈变量的修饰,可以认为栈变量的生命周期延长
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章