全域性變數的使用問題,全域性變數的使用注意

時間 2023-01-30 14:05:07

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都是全域性變數。如果在函式體內,帶...