靚麗時尚館

位置:首頁 > 健康生活 > 心理

結構體與全域性變數優缺點

心理3.14W
結構體與全域性變數優缺點

優點:

1)全域性可見,任何 一個函式或執行緒都可以讀寫全域性變數-同步操作簡單。

2)記憶體地址固定,讀寫效率比較高。

缺點:

1)全域性變數存放在靜態儲存區,系統需要為其分配記憶體,一直到程式結束, 才會釋放記憶體,這一點就區域性變數的動態分配,隨用隨從棧中申請,用完(函式呼叫完畢)就釋放。

2)影響函式的封裝效能:我們肯定是希望我們寫的函式具有重入性,就如一個黑盒子一般,只 通過函式引數就能得到返回,內部 實現要獨立,但是如果函式中使用了全域性變數,這勢必就破壞了函式的封裝性,會造成對全域性變數的依賴。

3)降低函式的移值性,原因同上。

4)降低程式碼的可讀性,這也意味著系統維護會不方便,因為一個全域性變數可能會出現程式中的各個環節,函式的 執行也會根據環境變化而變化,所以除錯會不太方便。

5)全域性變數的讀寫,可能會延遲,這主要是體現在“寫”操作上,由於寫操作,一般需要2個週期操作,所以有可能會出現,這邊沒寫完時,那邊已經讀了,結果 讀到的不是最終值,這個是一個概率事件,概率 很小,但是並不代表沒有。