資源浪費:全局變量只能在程序全部執行完成之後,才會銷毀;申請的變量越多,占用的內存越多,內存可用空間就越少;而使用局部變量,在執行完其作用域的代碼,局部變量就銷毀了,內存就可以重復利用;
安全性:在中大型的項目開發中,多人開發,很容易出現變量重名,即便單人開發,也很難規避變量重名;
訪問效率:局部變量存儲在棧中,全局變量存儲在堆中,執行到函數的時候, 函數的堆棧內存應該是在 CPU 的高速緩存中的, 而全局變量基本上是不在的. 訪問全局變量的話, 可能導致 CPU 重新加載緩存, 效率自然低了。
此外,多線程編程的時候,全局變量的訪問容易沖突,等等...
總之,實際開發是盡量不用全局變量。