关于static函数的解释.求解

漁_夫 2011-04-08 01:30:03
static 函数既然在内存中只有一份,并不会在每次调用的过程中都有一个临时拷贝。。
那么有没有情况,两个线程同时访问一个static函数?
...全文
195 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jialejiahi 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 arthersophy 的回复:]

static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。。(这个怎么解释,……
[/Quote]
打个比方,函数是一个机器,你传人的参数是要加工的原料(函数内声明的局部变量也算原料),你每次开动机器使用的是不同的原料,但是机器只有那一个。
尽管不同的线程或者不同地方的调用使用的变量不同,但是
函数就在那里,不增不减。不管有没有static
jackiesen 2011-04-08
  • 打赏
  • 举报
回复
static变量和auto变量主要区别是存储方式不同!
漁_夫 2011-04-08
  • 打赏
  • 举报
回复
static函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件

static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。。(这个怎么解释,我说的不是代码域,而是程序的栈。可以在不同的栈帧中出现同一个static 函数吗?)
Tauren_Chieftan 2011-04-08
  • 打赏
  • 举报
回复
static修饰函数体现在其它文件域中的函数不能调用该函数,也就是在链接时,会有约束。
majia2011 2011-04-08
  • 打赏
  • 举报
回复
既然是c就没什么可说的了
jialejiahi 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 luciferisnotsatan 的回复:]

函数用static修饰,不是说这个函数是静态的,而是说这个函数只能在该文件内部被调用,外部无法调用该函数
[/Quote]
正解,
不管你是否用static,函数在内存的代码域只有一份。
luciferisnotsatan 2011-04-08
  • 打赏
  • 举报
回复
static关键字有几种不同的用处

http://topic.csdn.net/u/20101221/22/a4fdc6a1-23d0-4bdc-8bda-fe61f90ffdd7.html
luciferisnotsatan 2011-04-08
  • 打赏
  • 举报
回复
函数用static修饰,不是说这个函数是静态的,而是说这个函数只能在该文件内部被调用,外部无法调用该函数
tt2com 2011-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 soul850224 的回复:]
mark....
关注中....
[/Quote]
delphiwcdj 2011-04-08
  • 打赏
  • 举报
回复
可以同时访问吗
pathuang68 2011-04-08
  • 打赏
  • 举报
回复
当然有这样的情况。

”static 函数既然在内存中只有一份“,普通函数在内存中也只有一份,在这点上和static函数好像没啥区别。
「已注销」 2011-04-08
  • 打赏
  • 举报
回复
static 变量。。。static函数?????、我晕了。。。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧