`
h416756139
  • 浏览: 365801 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

全局变量的优缺点

    博客分类:
  • java
阅读更多

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

摘自:http://www.neu.edu.cn/cxsj/online/C7/ch7_5-2.html

 

分享到:
评论

相关推荐

    C语言中如何使用全局变量示例

    4. **全局变量的优缺点** - **优点:**全局变量可以提供跨函数的数据共享,简化代码编写。 - **缺点:**全局变量容易引发数据竞争、导致代码难以理解和调试。过度依赖全局变量可能导致程序设计上的问题,比如增加...

    MFC全局变量的四种方法

    MFC提供了多种方式来实现全局变量,每种方法都有其特定的适用场景和优缺点。下面将详细介绍这四种方法。 ### 1. 常规C++全局变量 这是最基础的方法,适用于不涉及MFC特定类型的全局变量。在MFC应用的任何源文件中...

    MFC中定义全局变量和全局函数的方法

    ### MFC中定义全局变量和全局函数的方法 ...每种方法都有其优缺点,开发者应根据项目的需求和规模选择最合适的方式。无论采用哪种方法,都需要确保代码的清晰性和可维护性,避免过度依赖全局状态而导致的设计问题。

    全局变量

    这篇博客“全局变量”可能是讨论如何在不同编程环境中理解和使用全局变量,以及它们的优缺点。 全局变量是在程序的所有函数或方法范围内都可访问的变量。它们在程序开始执行时被创建,并在整个程序运行期间保持其值...

    在MFC下如何定义全局变量和全局函数

    ### 在MFC下定义全局变量和全局函数的方法 在MFC环境下开发的应用程序通常由多个文件组成,这使得全局变量和全局函数的定义变得相对复杂。为了能够在整个项目范围内访问某些变量或函数,开发者需要采取特定的方法来...

    ktv.rar_KTV_c语言小项目_全局变量_结构体

    同时,这个项目也强调了结构体和全局变量的合理使用,帮助理解它们的优缺点,以及在实际编程中如何权衡选择。对于初学者来说,这样的实践经验将有助于加深对C语言基本概念的理解,提升编程技能。 在ktv.txt文件中,...

    我和LabVIEW(word版)——一个NI工程师十年的编程经验29全局变量.doc

    LabVIEW中的全局变量、单进程共享变量和功能全局变量都是非常重要的概念,它们之间的区别和优缺点需要我们一定要了解和掌握,以便更好地使用LabVIEW编程语言。 在实际应用中,我们需要根据实际情况选择合适的变量...

    uni-app全局变量的几种实现方式.zip

    每种方式都有其适用场景和优缺点,开发者应根据项目需求和团队习惯选择合适的全局变量实现方式。在实际开发中,推荐使用Vuex进行状态管理,配合uni-app的`globalData`处理轻量级的全局需求,以及自定义事件中心来...

    C#三种窗体之间传值全局变量、构造函数、委托

    每种方法都有其适用场景和优缺点。全局变量方便但可能引发数据安全问题;构造函数适用于固定数据传递;委托则提供了一种灵活、动态的数据交互方式,适用于更复杂的场景。在实际开发中,应根据项目需求选择合适的方法...

    VUE 全局变量的几种实现方式

    总结,Vue.js中实现全局变量的方法各有优缺点。对于简单的需求,可以使用全局变量模块或挂载到Vue.prototype。对于更复杂的应用状态管理,Vuex是一个更好的选择。但无论选择哪种方式,都应遵循最小化全局变量原则,...

    C语言之外部变量讲解

    #### 六、外部变量的优缺点 **优点**: - 方便在多个函数之间共享数据。 - 提高了代码的可读性,因为可以在不同的地方查看和修改同一个变量。 **缺点**: - 容易引发命名冲突。 - 可能导致程序状态难以跟踪,...

    python 优缺点和java与python的jar

    在深入了解Python的优缺点以及它与Java之间的交互,特别是涉及到Java的jar文件时,我们首先要明确Python和Java各自的特点。 **Python的优点:** 1. **易学性**:Python的语法简单,适合初学者入门,其“易于阅读”...

    银行ATM系统

    在学习ATM系统时,理解全局变量的优缺点以及如何妥善使用它们是提升编程能力的关键步骤。通过实践和优化,可以创建出更稳定、更易于维护的ATM系统软件。对于初学者来说,这是一个很好的起点,从中可以学习到程序设计...

    BP神经网络的优缺点

    BP神经网络的优缺点 BP神经网络是人工神经网络中的一种,具有从输入到输出的映射功能,可以实现任何复杂非线性映射的功能。这使得它特别适合于求解内部机制复杂的问题。BP神经网络的优点有: 1. 网络实质上实现了...

    Vue中定义全局变量与常量的各种方式详解

    以下是几种常见的方法,以及它们的优缺点: 1. **模块作用域**: - 试图在 `global.js` 文件中定义变量 `a = 10`,然后在其他文件中直接引用它,会导致报错,因为 JavaScript 模块有其自身的作用域。在模块中定义...

    帮助新手入门 vc++入门(3)part3

    局部变量和全局变量各有优缺点。局部变量更安全,因为它们的作用域有限,减少了命名冲突和意外修改的风险;而全局变量则方便共享数据,但易导致依赖性过强,使得代码难以理解和调试。在编写VC++程序时,应根据需求...

    PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】 <font color=red>原创</font>

    global关键字和$GLOBAL数组都是PHP中访问全局变量的工具,它们各有优缺点。global关键字更适合在函数中明确指出需要访问的全局变量,代码可读性较好。而$GLOBAL数组则提供了更加灵活的访问方式。在使用这些方法时,...

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

    5. 匿名函数的优缺点: - 优点:提高代码的封装性,减少全局变量,提高代码的安全性和可维护性,适用于模块化开发。 - 缺点:如果滥用匿名函数,可能会导致代码可读性下降,调试困难,且Function()构造函数的性能...

    vue项目中定义全局变量、函数的几种方法

    以下是一些常见的实现方法,每种方法都有其优缺点,可以根据项目需求选择合适的方案。 **定义全局变量** 1. **创建全局变量模块并挂载到`main.js`** - 创建一个名为`Global.vue`的文件,定义需要的全局变量如`...

Global site tag (gtag.js) - Google Analytics