為什麼我們應該避免在 C/C++ 中使用全域性變數?


我們應該避免在任何語言中使用全域性變數,而不僅僅是 C++。這是因為這些變數會汙染全域性名稱空間,並且可能會在大型專案中導致一些極其討厭的錯誤,因為它們可以從任何檔案進行訪問,因此可以從任何位置對其進行修改。以下是一些認為全域性變數不好的原因 -

  • 全域性變數可以被程式碼的任何部分更改,因此很難記住或推論出每個可能的用法。

  • 全域性變數可能沒有任何訪問控制。它不能侷限於程式的某些部分。

  • 使用全域性變數會導致程式碼的耦合性非常緊密

  • 使用全域性變數會導致名稱空間汙染。這可能會導致不必要地重新分配全域性值。

  • 在使用全域性變數的程式中進行測試可能是一件非常痛苦的事情,因為在測試時很難將它們解耦。

請注意,有時你只需要使用全域性變數。但在這麼做之前,請確保你是否還有其他選擇。在 c2 wiki 中詳細瞭解全域性變數 - http://wiki.c2.com/?GlobalVariablesAreBad

更新於:2020 年 6 月 24 日

4K+ 閱讀次數

開啟您的 職業生涯

完成課程獲得認證

開始使用
廣告
© . All rights reserved.