為什麼我們在 C/C++ 中應該避免使用全域性變數?
我們應當避免在任何語言中使用全域性變數,而不僅僅是 C++。這是因為這些變數會汙染全域性名稱空間,並且可能會在大型專案中造成一些非常討厭的錯誤,因為可以從任何檔案中獲取它們,因此可以從任何地方修改它們。以下是一些認為全域性變數不好的原因 -
全域性變數可以被程式碼的任何部分更改,這使得記住或理解每種可能的用途變得困難。
全域性變數可能無法訪問控制。它不能限制在程式的某些部分。
使用全域性變數會導致程式碼的緊密耦合。
使用全域性變數會導致名稱空間汙染。這可能會導致不必要地重新分配全域性值。
在使用全域性變數的程式中進行測試可能非常麻煩,因為在測試時很難對它們進行解耦。
請注意,有時你只需要使用全域性變數。但在這樣做之前,請確保你是否有任何替代品。請詳細瞭解 c2 wiki 中的全域性變數 - http://wiki.c2.com/?GlobalVariablesAreBad
廣告