1樓:匿名使用者
1,使用全域性變數會占用更多的記憶體(因為其生命期長),不過在計算機配置很高的今天,這個不稱為什麼問題,除非使用的是巨大物件的全域性變數,能避免就一定要避免。
2,使用全域性變數程式執行時速度更快一些(因為記憶體不需要再分配),同樣也快不了多少。
3,對於區域性變數的名字空間汙染,這個在不使用太多變數時是可以避免的。
4,當全域性變數與區域性變數重名的時候,起作用的是區域性變數,全域性變數被遮蔽掉。
5,還可以用extern在函式外對全域性變數宣告,使全域性變數的作用域從宣告處到檔案的結束。
總之,全域性變數可以使用,但是全域性變數使用時應注意的是盡可能使其名字易於理解,而且不能太短,避免名字空間的汙染;避免使用巨大物件的全域性變數。
如下例所示宣告全域性變數:
global y as string
c語言全域性變數的優缺點
2樓:河蟹和諧河蟹
當然有道理,因為全域性也不是萬能的。
全域性變數優點:
1.全域性可視,任何乙個函式都可以訪問和更改變數值。
2.記憶體位址固定,讀寫效率高。
缺點:1.容易造成命名衝突。
2.當值不正確或者出錯時,很難確定是哪個函式更改過這個變數3.不支援多執行緒。
3樓:匿名使用者
全域性變數存在靜態區,非static全域性變數可被其它檔案extern宣告使用,缺點是執行緒不安全。
4樓:匿名使用者
全域性變數最大的優點就是它最大的缺點。如果使用太多的全域性變數會使**編寫和維護變得非常困難。。因為所有函式都有肯能去影響它 而且是**變得非常不穩定。。。
看大型** 如果開頭一看一堆全域性變相。。。直接就想罵死那個寫**的了。
5樓:匿名使用者
全域性變數會造成程式的耦合性太強。
j**a中如何設定全域性變數使之在多個類中使用.
6樓:匿名使用者
要想在多個類中呼叫,得在類外面定義!
在include下面定義就行了!
7樓:匿名使用者
全域性?在外面設定就成了啊,public
8樓:匿名使用者
在方法外面申明··那不就是全域性變數嗎?
關於全域性變數的問題
9樓:金色潛鳥
在類中定義的成員變數,屬於這個類(的物件),這樣的「全域性變數」並非真正的全域性量,只是說它的生命期像全域性變數。指標它的生命是在宣告了物件時開始, 它的陣列動態分配,在呼叫構建函式時進行,在呼叫析構函式時,陣列的記憶體被釋放。
只有當陣列的記憶體已分配,並且未被釋放時,通過允許進入私有成員的方法來使用。
什麼時候必須用全域性變數才能解決問題
10樓:
全域性變數也稱為外。
部變數,它是在函式外部定義的變數。 它不屬於哪乙個函式,它屬於乙個源回程式檔案答。其作用域是整個源程式。
在函式中使用全域性變數,一般應作全域性變數說明。 只有在函式內經過說明的全域性變數才能使用。全域性變數的說明符為extern。
但在乙個函式之前定義的全域性變數,在該函式內使用可不再加以說明。外部變數是在函式外部定義的全域性變數,它的作用域是從變數的定義處開始,到本程式檔案的結尾。在此作用域內,全域性變數可為各個函式所引用。
編譯時將外部變數分配在靜態儲存區。 有時需要在其他檔案中使用extern來宣告外部變數,以擴充套件外部變數的作用域。 也可用static宣告外部變數,使該變數不能被其他檔案引用。
有時候他們是一樣的,只有稍微一點的區別而已,不用太過於區分的。
c++中全域性變數的使用問題? 20
11樓:網友
你沒有給此結構體乙個別名 struct tag my_tag; my_tag m_tag;
或者是 struct tag ; struct tag m_tag;
建議用第一種方式,tag 不是型別 ,struct tag 才是。
關於全域性變數的使用問題,請高手指教
12樓:匿名使用者
static變數放在cpp裡面去定義吧,想多個cpp去使用就使用外部變數。
你這樣放在標頭檔案裡面去給不同cpp呼叫,在各自cpp裡面應該是各自的值。
c語言 全域性變數 可宣告問題
13樓:網友
這樣講是不正確的,static宣告變數後,變數的生存期為整個程式的生存期,而extern 修飾變數後,目的是在本檔案中引用其它檔案中的變數。
14樓:網友
全域性變數其實是定義在資料段的,extern只是為外部變數預留記憶體,而static是靜態宣告。
預設是static,全域性變數就是static的。
15樓:匿名使用者
如果static和extern都沒有,表示定義乙個全域性變數,其作用域限制在從定義開始到當前檔案結尾。
static的作用是將全域性變數的作用域限制在從定義開始到當前檔案結尾,且其他檔案不可以用extern來讓這個變數可見。
extern的作用是宣告乙個已經在別處定義了的全域性變數,它不是重新定義新的全域性變數,而是起到擴充套件全域性變數作用域的作用。
:int i; /定義i變數,且可用extern去擴充套件它的範圍。
static int j; /定義j變數,用static限定j只能在本檔案內使用。
int i; /正確,將i的作用域延伸到中。
extern int j; /錯誤,因為j在定義時被static限定。
c 全域性變數的問題,C 如何宣告全域性變數
定義應該放在。cpp檔案中。標頭檔案中是。extern 宣告,不是定義。定義放在標頭檔案,那包含此標頭檔案的。cpp都定義了此變數了,還不是多重定義嘛。你將你定義的全域性變數改為靜態的試試。應該是變數的鏈結性問題!如何在c 中設定全域性變數?1 首先,定義乙個實現加法運算自定義函式。2 接著,定義乙...
vb全域性變數,vb全域性變數可以在哪裡宣告
public x as integer 宣告在form1中。但是其它窗體引用的時候必須這樣引用。所以你題目有兩種改法。一 form2中x 1改成 二 新建模組,在模組中定義public x as integer 全域性變數,只能在模組中定義,你需要在工程中插入乙個模組,然後將。public x as...
js全域性變數無效,JS中全域性變數不能被函式讀取嗎?
var online new array 獲取qq號 var uin document ready function alert uin 所以到這裡沒有負值操作document.write 半緣修道半緣女 js全域性變數無效原因 如果在函式體外,帶var和不帶var都是全域性變數。如果在函式體內,帶...