在C語言中,static關鍵字有以下幾種作用:
靜態變量:在函數內部使用static修飾的變量被稱為靜態變量,它的生命周期與程序的整個運行周期相同,而不是僅在函數被調用時存在。靜態變量的作用域仍然是在聲明它的函數內部,但是它在函數調用結束后仍然保持其值,下一次調用該函數時,靜態變量的值將保持上一次調用結束時的值。
靜態函數:在函數聲明中使用static關鍵字修飾,表示該函數只在定義它的源文件中可見,無法被其他文件調用。靜態函數的作用主要是限制函數的作用域,防止與其他源文件中的函數命名沖突。
靜態全局變量:在函數外部使用static修飾的變量被稱為靜態全局變量,其作用域僅限于定義它的源文件內部。靜態全局變量在程序整個運行周期內都存在,但是只能在定義它的源文件中被訪問,其他源文件無法訪問它。
靜態成員變量:在面向對象編程中,static關鍵字也可以用于類的成員變量,表示該成員變量為類的共享變量,所有該類的對象共享同一個靜態成員變量的內存空間。
總結起來,static的作用可以歸納為:限制作用域、延長生命周期、共享內存空間。