全局變量檢視原始碼討論檢視歷史
全局變量 |
全局變量是編程術語中的一種,源自於變量之分。變量分為局部與全局,局部變量又可稱之為內部變量。由某對象或某個函數所創建的變量通常都是局部變量,只能被內部引用,而無法被其它對象或函數引用。全局變量既可以是某對象函數創建,也可以是在本程序任何地方創建。全局變量是可以被本程序所有對象或函數引用。
簡介
全局變量的存在主要有以下一些原因:1,使用全局變量會占用更多的內存(因為其生命期長),不過在計算機配置很高的今天,這個不應該算什麼問題,除非使用的是巨大對象的全局變量,能避免就一定要避免。2,使用全局變量程序運行時速度更快一些(因為內存不需要再分配),同樣也快不了多少。3,對於局部變量的名字空間污染,這個在不使用太多變量時是可以避免的。4,當全局變量與局部變量重名的時候,起作用的是局部變量,全局變量被屏蔽掉。5,還可以用extern在函數外對全局變量聲明,使全局變量的作用域從聲明處到文件的結束。6,全局變量的優先度低於局部變量。總之,全局變量可以使用,但是全局變量使用時應注意的是儘可能使其名字易於理解,而且不能太短,避免名字空間的污染;避免使用巨大對象的全局變量。
評價
在現代的面向對象語言如Java,C++,C#,Ruby中,由於變量都是封裝在類裡面的,對別的類不可見,所以已經幾乎完全拋棄了全局變量的概念。然而,可以通過把一個類定義為public static,把類成員變量也定義為public static,使該變量在內存中占用固定、唯一的一塊空間,來實現全局變量的功能。[1]