永发信息网

如果一个函数经常被调用,而里面有1个临时局部变量,是否最好采用全局变量?

答案:1  悬赏:50  手机版
解决时间 2021-03-07 03:25
  • 提问者网友:轻浮
  • 2021-03-06 20:23
否则,每次调用都需要为这个临时变量分配一次内存,用一个全局变量就可以避免这个问题,是这样子么
最佳答案
  • 五星知识达人网友:逐風
  • 2021-03-06 22:03
首先,局部变量的内存不只会分配,还会释放的。用全局变量确实可以避免多次局部变量内存分配。但是,如果你在担心内存分配的花销、内存分配释放过程带来的效率问题,那么其实是在考虑一个事实上不存在的问题…因为内存分配带来的空间和时间花费是微忽其微的,并且以现在的计算机硬件。你"想到”问题了之后,要去证明这个问题真的存在,至少先得看到这个问题的现象吧。大多数程序,最重要的不是它的执行速度。 对于用户来说,是它的正确性。 用户要的是对他有用的软件,不是要你为他省几KB计算机内存 ; 对程序员来说,是可读性,可修改性等。简单说下,用全局变量的问题: 0. 不知道你说的是什么编程语言中的,要知道,在c家族语言(c,c++,java,c#等)中,函数形式参数、函数内定义的变量、代码块中的等都是局部变量,那你得弄多少全局变量? 最后,肯定编译都过不了。 1.程序不好甚至无法理解。全局变量使读程序者难以跟踪程序状态,这对人的记忆是一个挑战。而且,一个全局变量无法表达不同的概念,这就更增加了阅读程序的难读性。 2.如果函数依赖于全局变量,那么这种函数其实是不能被复用的。举个例子,难道你使用fun3前,还要初始化它所使用全局变量?再想,你无法把这种某个函数从一个文件移到另一个文件中,如果要移,你得把它依赖的全局变量也给移过去,但是这些全局变量原来又被别的函数依赖着,那你得把这些函数都移过去,移过去后。你又发现名字冲突了…如此痛苦。也许你读不懂上面的,有些编程经验后就可以明白的。 补充: 上面说的不好。相对的,局部变量有很多好处,主要有: 0,减少名字冲突,局部就是名字空间。 1,根据记忆的七正负二原理,人不善于记忆多个东西,而局部变量让你在一个地方用它,在另一个地方去不必记起和在意它。完全集中注意力再解决另一个问题。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯