久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
C編程中使用全局變量應(yīng)注意的事項
[打印本頁]
作者:
liuqq
時間:
2015-5-20 14:33
標(biāo)題:
C編程中使用全局變量應(yīng)注意的事項
1、盡量用局部變量替代全局變量。如果用局部變量能實現(xiàn)功能,最好用局部變量。
2、在函數(shù)僅僅只是要用到某個全局變量,而無需改動時,就將全局變量通過形參傳遞進(jìn)來,變成局部變量使用。并在定義時使用const。這是避免全局變量在函數(shù)中被意外的改動。如在判斷語句中將'=='誤寫成'='。這時首先因為在函數(shù)內(nèi)的是局部變量所以即使出錯也不會影響全局變量和其他函數(shù)或模塊。其次因為定義的是const類型,當(dāng)發(fā)生意外改動時,編譯器會發(fā)出錯誤信息或警報,這也就是讓你的程序自動糾錯。這種情況應(yīng)發(fā)生在對模塊內(nèi)的全局變量的調(diào)用,而對于其他模塊的全局變量應(yīng)通過模塊接口調(diào)用。
3、中斷中使用的全局變量,在其他函數(shù)內(nèi)要使用時一定要進(jìn)入臨界區(qū)(也就是關(guān)閉中斷)。如果是使用操作系統(tǒng)的話,則在所有使用到與其他任務(wù)共享的全局變量的地方都要進(jìn)臨界區(qū)。
4、對于僅在某個函數(shù)內(nèi)使用的全局變量就用靜態(tài)局部變量替代。
5、應(yīng)盡量避免直接操作或調(diào)用其他模塊的變量。需要調(diào)用或修改其他模塊的變量時,可以通過那個模塊提供的操作接口函數(shù)進(jìn)行操作。比如某個模塊有一個全局的計數(shù)值Count,則可以提供函數(shù)接口:GetCount()、SetCount()或ReloadCount()。這樣一來,其他模塊要調(diào)用Count時就通過這些指定的函數(shù)接口。這樣可以降低模塊間的耦合程度。另外如果嫌接口用函數(shù)實現(xiàn)過于復(fù)雜或是影響速度,則可以用帶參數(shù)的宏定義實現(xiàn)。如:
#define GetCount() (Count)
#define SetCount(num) (Count=(num))
#define ReloadCount() (Count=0)
這樣,使用時與函數(shù)調(diào)用一樣,但沒有函數(shù)調(diào)用時的開銷。另外,功能變化是可以將宏定義改成函數(shù),而無需改動調(diào)用語句。
6、每個模塊內(nèi)的全局變量應(yīng)該用靜態(tài)全局變量,一來其他模塊無法直接調(diào)用這些變量;二來命名空間不會重疊,在實現(xiàn)一個模塊時無需考慮某個全局變量的名稱是否已被其他模塊使用。如在模塊A中定義靜態(tài)變量 static unsigned char Count;在B模塊中,仍可以定義靜態(tài)變量 static unsigned char Count;這兩個Count不會相互影響,但是如果定義的是全局變量則不然。
7、模塊間的耦合性就是指當(dāng)修改其中某個模塊時會影起其他模塊運(yùn)行結(jié)果發(fā)生不可預(yù)料的變化。如果模塊間是通過直接調(diào)用對方內(nèi)部的全局變量來實現(xiàn)交互,則兩個模塊間的耦合性將會變得復(fù)雜而且難以控制。而模塊間的交互通過一個統(tǒng)一的接口函數(shù)來實現(xiàn),使得模塊都無需知道對方模塊內(nèi)部的具體實現(xiàn)(這也就是面向?qū)ο罄锩娴姆庋b)。當(dāng)某個模塊內(nèi)的實現(xiàn)發(fā)生改寫或升級時,只要確保模塊接口不變即可。這就大大降低兩模塊間的耦合。在規(guī)劃設(shè)計模塊時就應(yīng)認(rèn)真考慮好模塊的接口,以及與其他模塊的調(diào)用關(guān)系。所以要記住編程原則:針對接口編程,而不是針對實
現(xiàn)。
8、函數(shù)的功能要單一,也就是高內(nèi)聚性。如果某個函數(shù)需要調(diào)用很多個全局變量,則說明函數(shù)的內(nèi)聚性不夠高,可以考慮將函數(shù)拆分成幾個功能更單一的函數(shù)。
9、要記住編程是一種平衡的藝術(shù)。沒有程序可以做到十全十美,省空間、速度快、易擴(kuò)展、易維護(hù)、低耦合、功能強(qiáng)大這些是不可能同時兼得的。如要提高程序的可維護(hù)性,就必須在性能方面(空間和速度)做出一點犧牲。至于如何平衡,就要看項目的具體要求了。
作者:
zhwzjf
時間:
2016-10-25 12:23
謝謝樓主的共享,學(xué)習(xí)了!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
91超碰在线观看
|
国产精品亚洲综合
|
麻豆视频一区二区
|
久久h
|
日韩在线视频播放
|
小镇姑娘国语版在线观看免费
|
黄色一级片网站
|
国产成人精品一区
|
av在线免费观看网址
|
亚洲免费成人
|
av黄色在线
|
亚洲经典av
|
老司机精品福利视频
|
一本到av
|
免费的黄色大片
|
国产精品久久一区二区三区
|
午夜小视频在线观看
|
精品一区二区在线视频
|
欧美日韩一区二区在线
|
成人香蕉网
|
黄色片在线免费观看
|
免费一级黄色片
|
国产日韩欧美亚洲
|
久久伊人国产
|
国产麻豆xxxvideo实拍
|
拍床戏真做h文黄肉1v1
|
国产一级免费观看
|
午夜视频在线免费观看
|
三级理论片
|
亚洲黄色大片
|
亚洲区一区二
|
在线免费观看毛片
|
www国产视频
|
国产成人精品三级麻豆
|
国产精品久久久国产盗摄
|
日韩精品网站
|
一区二区三区视频
|
伦一理一级一a一片
|
男人添女人囗交图
|
亚洲一区在线观看视频
|
久久久久精
|