C语言中静态函数是指只能在当前源文件中调用的函数,且static函数避免在调用函数时进栈出栈,所以

C语言中静态函数是指只能在当前源文件中调用的函数,且static函数避免在调用函数时进栈出栈,所以速度快很多,那么请问如果只有一个源文件把所有的函数都定义成静态函数是不是执行效率会提高呢?不过似乎没有人这样写,为什么呢?

原因就是会造成空间的浪费,当系统调用函数是,事实它是在建副本(我这么说你能理解吧),在副本里面把所有的东西都运算处理在返回结果,然后把建副本的资源清掉回收,如果你是用了,静态变量和函数,那么在资源回收时就不回收这一部分的,等于下次要用时能继续用,一般是为了满足某种特殊需求而使用;如果全部都用,那就太浪费空间了追问

谢谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-19
很简单,因为栈空间有限的,小程序这样规划没问题的,大项目这样做会很容易导致栈溢出,而且大量静态函数在一个命名空间下不利于函数定义,会导致函数名重名,要么使用长函数名定义,但是这样不利于管理。只有那些全局公共函数才需要定义为静态函数,特定功能的函数最好还是用类封装,以体现面向对象的设计思想。
相似回答