函数的参数和返回值都不要,函数内的变量全部是全局变量,这样有没什么不好?

 我来答
百度网友75dd747
2012-07-07 · TA获得超过2436个赞
知道小有建树答主
回答量:498
采纳率:0%
帮助的人:502万
展开全部
我个人的理解的话
1、全是全局变量的话,一个是安全性不高,等于所有变量全都是被暴露出来的。这如果是你一个人自己写的程序的话,自己控制下看不出什么问题。而一旦程序是由多个人合写的,可能造成无法控制的修改
2、全部使用全局变量,不同程序员之间对该变量的含义可能不是特别了解。而以函数参数和返回值形式的话,编写该函数的人只需要关心输入输出的变量,内部变量完全由自己控制
其他方面还有,我目前没想到,不过极其不推荐这样的编程习惯
bo_huang_fudan
2012-07-07
知道答主
回答量:17
采纳率:0%
帮助的人:7.7万
展开全部
1) 容易引起变量重名
2)变量的生命周期太长(从程序运行开始直至程序运行结束),从而导致全局内存空间被长期占用。
3)由于变量的活跃范围太宽,编译时的寄存器分配会很吃紧,从而引入太多的内存访问(load/store)而导致程序的执行效率下降
4) 对于多线程程序,线程切换时保留/恢复现场的开销会增大
5) 增加了并行优化的难度
6) .....
总而言之,这是一种很不好的编程习惯,:-)
追问
一个算法处理的模块,每调用一次后有一些算法状态需要保存,如果都用static变量应该不好,不知道有没好方法
追答
这要看所需保存状态的活跃范围。通常的做法是通过动态分配内存空间来保存状态,一旦使用完后就释放所申请的内存空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ALSICK
2012-07-12 · 超过13用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:12.3万
展开全部
有些方法是需要参数和返回值得,全局变量是因为这个变量要在全局中起作用(也就是作用域),在JAVA中实现多态就需要传参。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gz_hefeng123
2012-07-15
知道答主
回答量:3
采纳率:0%
帮助的人:5.6万
展开全部
补充两个,一,容易出现重命名冲突;二,全局变量长期占用内存,这个是完全没有必要的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式