`

全局变量的优缺点

    博客分类:
  • Java
阅读更多
              
            全局变量的优缺点

使用全局变量的优点是:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。
但是,使用全局变量也有许多缺点:
(1)全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多的内存单元。
(2)全局变量破坏了函数的封装性能。前面的章节曾经讲过,函数象一个黑匣子,一般是通过函数参数和返回值进行输入输出,函数内部实现相对独立。但函数中如果使用了全局变量,那么函数体内的语句就可以绕过函数参数和返回值进行存取,这种情况破坏了函数的独立性,使函数对全局变量产生依赖。同时,也降低了该函数的可移植性。
(3)全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。
因此,如果不是万不得已,最好不要使用全局变量。
分享到:
评论

相关推荐

    JavaScript中匿名函数的用法及优缺点详解

    匿名函数可以有效的保证在页面上写入Javascript,而不会造成全局变量的污染。 这在给一个不是很熟悉的页面增加Javascript时非常有效,也很优美。 一、什么是匿名函数? 在Javascript定义一个函数一般有如下三种方式...

    C语言程序设计+研究生复试+求职+面试题

    static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别; 预编译命令作用; 论述含参数的宏与函数的优缺点; 文件操作过程; SOCKET基础之C/S通信...

    Go 单例模式讲解和代码示例

    Go 单例模式讲解和代码示例 单例是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。...单例拥有与全局变量相同的优缺点。 尽管它们非常有用, 但却会破坏代码的模块化特性。

    论文研究-求解带时间窗车辆路径问题的混沌遗传算法.pdf

    该算法将混沌变量映射到优化变量的取值范围中, 把得到的混沌变量进行编码生成初始种群, 然后在遗传操作进行之后对优秀个体增加混沌扰动, 促进种群的进化收敛速度, 得到最优解。实例计算结果与其他算法比较表明, 该...

    c++面试题基础分享.doc

    27.列举几种进程的同步机制,并比较其优缺点 28.数组和链表的区别 29.MFC主要要用到哪几个类?及其各个类的作用 30.MFC六大核心机制 31.OnDraw和OnPaint 32.win32程序的消息响应机制是如何实现的 33.MFC中的...

    php实现设计模式中的单例模式详解

    【优缺点】 1、对唯一实例的受控访问 2、缩小命名空间 单例模式是对全局变量的一种改进。它避免了那些存储唯一实例的全局变量污染命名空间 3、允许对操作和表示的精华 单例类可以有子类。而且用这个扩展类的实例来...

    QUALCOMM平台BUIW开发文档

    全局变量和__inline函数 92  全局变量 92  慎用全局变量 92  命名全局变量 92  修改全局变量 92  __inline函数 92  优缺点 92  哪些函数建议使用__inline 92 大数据量处理CPU时间限制 92  为什么不...

    论文研究-基于一种自适应选择机制的混合优化算法.pdf

    该算法引入了两个新的变量指标,即在迭代过程中种群个体适应值有所优化的概率及种群的全局最优值的变化情况,通过采用这两个变量所形成的一个二维合理的选择机制,实现下一个迭代过程中关于算法的选择迭代问题。...

    ASP中Web页面间的数据传递方式

    摘要:基于web的动态网页设计必会涉及到页面间的数据传递,文章探讨了asp设计中常用的web页面间的数据传递方式,分析各种数据传递方式的使用方法、使用场合及优缺点,其都是设计阶段选择数据传递方式考虑的关键。...

    人工蜂群优化算法

    人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值...

    Qualcomm平台BREW开发技术文档

    全局变量和__inline函数 92  全局变量 92  慎用全局变量 92  命名全局变量 92  修改全局变量 92  __inline函数 92  优缺点 92  哪些函数建议使用__inline 92 大数据量处理CPU时间限制 92  为什么不...

    基于kinect传感器进行手势控制X80机器

    马尔科夫模型算法和动态时间规整算法的优缺点,选出一种适合本文研究需求的 相对高效的算法——动态时间规整算法,并通过限制全局路径和失真度阈值进行 优化。利用优化后的动态时间规整算法验证上述 5 种手势识别的...

    基于遗传模拟退火算法的钢桁架结构优化设计 (2011年)

    将遗传算法(GA)的全局寻优性能好和模拟退火算法(SA)的局部搜索能力强的优点相结合,提出了用于钢桁架结构离散变量优化设计的遗传模拟退火算法(SAGA).以十杆桁架为例对此算法进行了数值实验,并将实验结果与其他优化...

    最新名企标准通用C++面试题,

    3、请简述以下两个for循环的优缺点(5分) for (i=0; i; i++) { if (condition) DoSomething(); else DoOtherthing(); } if (condition) { for (i=0; i; i++) DoSomething(); } else { for (i=0; i; i++)...

    structs程序设计从入门到精通word文档

    2.4讨论STRUTS的优缺点 9 2.5 Struts入门经验 9 2.6用strtus制作登陆页面: 9 第3章Struts 基础学习 9 3.1Struts标记库 9 3.2Struts框架基础篇 9 3.3Struts-config.xml配置文件讲解 3.4struts中文问题","struts国际...

    基于文化算法的聚类分析 (2006年)

    文化算法所具有的双层结构特性,使其在问题求解过程中能够利用经验知识来指导搜索过程,从而具有较好的全局寻优性能。仿真实验亦表明,两个版本的文化算法均能有效地克服传统的K-均值算法的缺点,而且全局收敛性能...

    linux系统编程之线程.zip

    注意:不应使用全局变量 pthread_t tid,在子线程中通过pthread_create传出参数来获取线程ID,而应使用pthread_self。 pthread_create函数 创建一个新线程。 其作用,对应进程中fork() 函数。 int pthread_create...

    基于一种自适应选择机制的混合优化算法 (2015年)

    该算法引入了两个新的变量指标,即在迭代过程中种群个体适应值有所优化的概率及种群的全局最优值的变化情况,通过采用这两个变量所形成的一个二维合理的选择机制,实现下一个迭代过程中关于算法的选择迭代问题。...

Global site tag (gtag.js) - Google Analytics