函数的参数和返回值都不要,函数内的变量全部是全局变量,这样有没什么不好?
4个回答
展开全部
1) 容易引起变量重名
2)变量的生命周期太长(从程序运行开始直至程序运行结束),从而导致全局内存空间被长期占用。
3)由于变量的活跃范围太宽,编译时的寄存器分配会很吃紧,从而引入太多的内存访问(load/store)而导致程序的执行效率下降
4) 对于多线程程序,线程切换时保留/恢复现场的开销会增大
5) 增加了并行优化的难度
6) .....
总而言之,这是一种很不好的编程习惯,:-)
2)变量的生命周期太长(从程序运行开始直至程序运行结束),从而导致全局内存空间被长期占用。
3)由于变量的活跃范围太宽,编译时的寄存器分配会很吃紧,从而引入太多的内存访问(load/store)而导致程序的执行效率下降
4) 对于多线程程序,线程切换时保留/恢复现场的开销会增大
5) 增加了并行优化的难度
6) .....
总而言之,这是一种很不好的编程习惯,:-)
追问
一个算法处理的模块,每调用一次后有一些算法状态需要保存,如果都用static变量应该不好,不知道有没好方法
追答
这要看所需保存状态的活跃范围。通常的做法是通过动态分配内存空间来保存状态,一旦使用完后就释放所申请的内存空间。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有些方法是需要参数和返回值得,全局变量是因为这个变量要在全局中起作用(也就是作用域),在JAVA中实现多态就需要传参。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
补充两个,一,容易出现重命名冲突;二,全局变量长期占用内存,这个是完全没有必要的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询