在程序设计中,全局变量是在所有作用域都可访问的变量,与之对应的是局部变量。
通常,使用不必要的全局变量被认为是坏习惯,这正是由于全局变量的非局部性:全局变量可能被从任何地方修改(除非位于保护内存中),也可能被任何地方所依赖。于是全局变量便拥有了创建相互依存关系的无限可能,而互相依存关系的创建会使得复杂度增加,参见远隔作用(Action at distance)。然而,在少数情况下是适合使用全局变量的。例如,可以通过全局变量的使用来避免常用变量在一系列函数间的频繁传递。
C++语言中全局变量的例子:
#include <cstdio>int global = 3; // 定义全局变量 globalstatic void ChangeGlobal(void){ global = 5; // 从函数中引用全局变量}int main(void){ std::printf("%dn", global); // 还是从函数中引用全局变量 ChangeGlobal(); std::printf("%dn", global);}