C語言裡全域性變數管理

whatnamecaniuse發表於2014-10-15
C語言裡資訊封裝比較弱,只有靜態變數的檔案作用域。


如果不加約束,很容易造成全域性變數滿天飛。


如果定義一個全域性結構體,把全域性變數都放到這個GlobleVariate裡,應該好管一些,至少比裸奔文雅一點。


更進一步,每個模組定義自己的結構體,把模組公共變數放到結構體裡。這樣把GlobleVariate拆成多個小結構體,會更文雅一些。


大概的虛擬碼是下面這個樣子。
struct GlobleVariate

    struct ModuleVariate1;
    struct ModuleVariate2;

    ...


同時禁止在函式外定義變數,這樣可以改善全域性變數管理問題。

相關文章