在C語言中,`static`關鍵字的作用主要有兩個方面:
隱藏和隔離作用:
當`static`用於修飾全局變數時,它可以將全局變數的作用域限制在定義它的源檔案中。這意味著該變數不會被其他檔案中的代碼訪問,從而實現了對其他模組的隱藏和隔離。
對於函式,`static`同樣可以限制其作用域,使得靜態函式只能在其所在的源檔案中被調用,不能被其他檔案中的函式調用。
保持變數內容的持久性:
當`static`用於修飾局部變數時,該變數被稱為靜態局部變數。這種變數在函式調用結束後不會被銷毀,其值會被保留,直到程式結束。這是因為靜態局部變數存儲在靜態數據區,而不是棧區,其生命周期從程式開始運行到程式結束。
靜態局部變數只會被初始化一次,即使有初始化語句,也只在第一次使用時執行。在後續的函式調用中,靜態局部變數的值保持不變。
總結來說,`static`關鍵字在C語言中主要用於限制變數的作用域和保持變數的值在函式調用之間的持久性。