《Visual C++ 2010入門經典》(第五版)-第五章 程序結構1 5.3函數中的靜態變量

在函數中,有些事情用自動變量是不能完成的。例如,不能計算調用函數的次數,因爲無法在多次調用中累積數值。

但如果非要有這種需要,那麼有多種方法可以解決:

第一種:可以使用引用形參來更新調用程序中的計數器,但如果程序中許多不同位置都調用該函數的話,這種方法將無濟於事;

第二種:可以使用在函數中遞增的全局變量,但這樣做是有風險的,因爲程序中任何位置都可以訪問全局變量,使得它們非常容易被意外修改;

在具有多個訪問全局變量的執行線程的應用程序中,全局變量同樣是危險的,因此必須特別注意管理從不同線程中訪問全局變量的方式。當多個線程都可以訪問某個全局變量時,必須處理的基本問題是:一個線程使用全局變量時,另外一個線程可以修改該變量的值。在這種情況下,最好的解決方式是完全避免使用全局變量。

爲了創建在這次與下次函數調用之間其值繼續存在的變量,可以在函數內將某個變量聲明爲static.

發佈了329 篇原創文章 · 獲贊 33 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章