缺点:1.容易造成命名冲突 2.当值不正确或者出错时,很难确定是哪个函数更改过这个变量 3.不支持多线程
但是,使用全局变量也存在安全性和可读性问题。在使用全局变量时,需要特别注意数据的安全性和可读性,尽可能减少全局变量的使用,使用常量和函数等方式进行数据传递。同时,全局变量和局部变量都有各自的优缺点,在编程时需要根据实际情况进行选择。
优点:内存在程序编译时分配好,内存在程序运行期间保持不变,一直存在,方便访问。比如全局变量,static变量。缺点:大小固定,无法动态改变。全局变量容易被滥用,影响程序的可维护性。样例代码:#include <stdio.h>int globalVariable = 30; // 静态变量在全局数据区分配void staticAllocation() { printf("Static...
缺点:①资源占用多;②函数的移植性差;③全局变量用的多容易混,程序员记忆量大,有时需要列一个变量表。结构体变量:优点:方便。缺点:使用范围受限,如果几个返回值正好是某个已有结构体变量的内容,那才是不二的选择。如果单独为了返回几个值而定义一个结构体变量,则得不偿失,增加编程的工作量...
最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅只受此函数控制)。static 关键字则可以很好的解决这个问题。 另外,在 C++ 中,需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性,即要求此成员隐藏在...
(1)全局可见,任何 一个函数或线程都可以读写全局变量-同步操作简单。 (2)内存地址固定,读写效率比较高。 缺点: (1)过多的全局变量会占用较多的内存单元:全局变量保存在静态存贮区,程序开始运行时为其分配内存,程序结束释放该内存。与局部变量的动态分配、动态释放相比,生存期比较长,因此过多的全局变量会占用较多...
要真有人认为“嵌入式软件只要能工作就成,代码丑一点无所谓的”纯粹是软件工程水平不行,不是因为控制水平太高。 当然,全局变量也有一些缺点。例如,它们可能会导致代码的可读性和可维护性降低,因为它们可以被程序中的任何函数修改。此外,在多线程环境下使用全局变量可能会导致竞态条件等问题。
局部变量作用域仅限于函数内,注意,形参变量是被调函数的局部变量,实参是属于主调函数的局部变量。 全局变量也称为外部变量,作用域是整个程序 全局变量的说明符为extern。在一个函数之前定义的全局变量,在该函数内使用时可不再加以说明。 优缺点分析:1.全局变量可加强函数模块之间的数据联系,但使函数的独立性降低 ...
C函数可以通过堆栈来和Lua交换数据,但有时候C函数需要在函数体的作用域之外保存某些Lua数据,那么我们想到全局变量或static变量,这样做的缺点是: (1)为Lua设计C函数库时,导致不可重入; (2)不是所有的Lua值都能很好的保存到C变量中。 那么可不可以将值保存在Lua全局变量里面呢?