`static`關鍵字在C語言中有以下作用:
隱藏:在多檔案開發中,使用`static`關鍵字可以限制全局變數或函式的作用域,使其只能被當前檔案中的代碼訪問,從而對其他模組隱藏這些變數或函式。
保持變數內容的持久化:無論是全局變數還是局部變數,一旦被`static`修飾,它們會被存儲在全局數據區,即使函式調用結束,記憶體也不會被銷毀。這使得靜態變數能夠保持其值,即使函式執行完畢。
靜態局部變數:對於函式中的靜態局部變數,即使函式調用結束,記憶體也不會被銷毀。但是,被`static`關鍵字修飾的靜態局部變數,如果變為全局數據區的變數後,只能被初始化一次,以後只能改變其值,不能再被初始化。
靜態函式:使用`static`關鍵字聲明的函式是靜態函式,它們的作用域被限制在定義它們的源檔案中,不能被其他檔案中的函式調用。靜態函式只能在定義它們的檔案中使用。
靜態代碼塊:使用`static`關鍵字聲明的代碼塊被稱為靜態代碼塊,它們只會在第一次使用它們的時候被執行一次,之後不會再次執行。
綜上所述,`static`關鍵字在C語言中主要用於隱藏變數或函式,保持變數內容的持久化,以及限制函式的作用域。