永发信息网

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

答案:1  悬赏:50  手机版
解决时间 2021-03-07 03:25
否则,每次调用都需要为这个临时变量分配一次内存,用一个全局变量就可以避免这个问题,是这样子么
最佳答案
首先,局部变量的内存不只会分配,还会释放的。用全局变量确实可以避免多次局部变量内存分配。但是,如果你在担心内存分配的花销、内存分配释放过程带来的效率问题,那么其实是在考虑一个事实上不存在的问题…因为内存分配带来的空间和时间花费是微忽其微的,并且以现在的计算机硬件。你"想到”问题了之后,要去证明这个问题真的存在,至少先得看到这个问题的现象吧。大多数程序,最重要的不是它的执行速度。 对于用户来说,是它的正确性。 用户要的是对他有用的软件,不是要你为他省几KB计算机内存 ; 对程序员来说,是可读性,可修改性等。简单说下,用全局变量的问题: 0. 不知道你说的是什么编程语言中的,要知道,在c家族语言(c,c++,java,c#等)中,函数形式参数、函数内定义的变量、代码块中的等都是局部变量,那你得弄多少全局变量? 最后,肯定编译都过不了。 1.程序不好甚至无法理解。全局变量使读程序者难以跟踪程序状态,这对人的记忆是一个挑战。而且,一个全局变量无法表达不同的概念,这就更增加了阅读程序的难读性。 2.如果函数依赖于全局变量,那么这种函数其实是不能被复用的。举个例子,难道你使用fun3前,还要初始化它所使用全局变量?再想,你无法把这种某个函数从一个文件移到另一个文件中,如果要移,你得把它依赖的全局变量也给移过去,但是这些全局变量原来又被别的函数依赖着,那你得把这些函数都移过去,移过去后。你又发现名字冲突了…如此痛苦。也许你读不懂上面的,有些编程经验后就可以明白的。 补充: 上面说的不好。相对的,局部变量有很多好处,主要有: 0,减少名字冲突,局部就是名字空间。 1,根据记忆的七正负二原理,人不善于记忆多个东西,而局部变量让你在一个地方用它,在另一个地方去不必记起和在意它。完全集中注意力再解决另一个问题。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下列动物中大脑最发达的是DA. 鱼B. 水蛭C. 海
华为海思k3v2e 和高通骁龙400系列那个性能更
加州阳光金阳幼儿园在哪里啊,我有事要去这个
台湾最新消息
请帮WPS表格做鞋厂计件工人工资,每个厂品的
【贸易顺差是什么意思】贸易顺差是什么意思啊
一只猴子在干什么,一只猴子在干什么,另一只猴
乒乓球历史上的第一位“大满贯”得主是谁?
用吹风机吹干短裤马上穿有没有危害
子龙幼儿园在什么地方啊,我要过去处理事情
幼师接手新开的小班?
上古卷轴5重制版sommer ray在哪
求三个字网名,要带“柳”的哦
求告知一个中杯的coco布丁奶茶多少钱
七里香什么时候种植
推荐资讯
众人拾柴火焰高用英语怎么说求解
如何看待薛之谦与李健对待音乐的态度 两者有
去港澳旅游需要上网吗?
射手拿红什么意思
每年的下半年都有多少天?
文学与剧本的区别
我的显卡是6pin+6pin的电源接口,但是我电源
贷款重组的第一步是()。A.成本收益分析B.准备
姜庄村村地址在什么地方,想过去办事
北京哪里人流最安全
怎么在网上查询的到二级建造师证书
京建线/S286(路口)在哪里啊,我有事要去这个
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?