在C語言中,關鍵字static有以下幾種作用:
靜態變量:static關鍵字可以用于聲明靜態變量,靜態變量存儲在靜態存儲區,在程序運行期間一直存在,其作用域為局部作用域,但其生命周期為整個程序運行期間。靜態變量的初始值默認為0,只會被初始化一次。
靜態函數:static關鍵字可以用于聲明靜態函數,靜態函數只能在當前文件中被調用,不能被其他文件調用。靜態函數的作用主要是限制函數的作用域,避免與其他文件中同名的函數發生沖突。
靜態全局變量:static關鍵字可以用于聲明靜態全局變量,靜態全局變量的作用域限制在聲明它的源文件內,其他文件無法訪問。靜態全局變量在程序運行期間一直存在,其生命周期也為整個程序運行期間。
靜態成員變量:如果將static關鍵字用于類中的成員變量,則該成員變量為靜態成員變量,靜態成員變量屬于整個類而不屬于對象,它在所有的對象中都是共享的。靜態成員變量的初始值默認為0,只會被初始化一次。
總的來說,static關鍵字的作用是限制變量或函數的作用域,以及改變其存儲方式,使其在程序運行期間一直存在。