靜態關鍵字static
C語言中,static關鍵字修飾變量和函數
1、局部變量
2、全局變量
3、函數
修飾局部變量
1、用靜態關鍵字static修飾的局部變量,在編譯的過程中,會在數據區為該變量開闢空間,並對其進行初始化,如果代碼中未對其進行初始化,則系統默認初始化為0
2、用static修飾的局部變量,會延長局部變量的壽命,超出函數的生存期
3、對靜態關鍵字修飾的局部變量的初始化
以下面兩個變量a和變量為b進行說明,在編譯過程中,發現變量a和b是靜態變量,會標識變量a與b,等到程序運行的時候,在主函數調用之前,對變量a和變量b分配空間,並對變量a進行初始化,由於變量b是由函數fun傳遞的參數進行初始化的,故會在程序調用函數時對變量b進行初始化,對變量b初始化之前,會檢查變量b的標識位,如果標識位為0,就會拿函數參數x對其進行初始化,標識位為1就不進行初始化
static int a = 0;
(編譯過程進行初始化)
static int b = x;
(運行該代碼的時候進行初始化)
void fun(int x) { static int a = 10; static int b = x; a++; b++; }
修飾全局變量變量
用靜態關鍵字static修飾全局變量的意義、
可見性不一樣,加上靜態關鍵字後,只對當前文件有效,對其他文件無效,並且有效區間從定義位置開始,一直到本文件結束
修飾函數
靜態關鍵字static修飾函數的意義
可見性不一樣,在函數前加上靜態關鍵字static,該函數也只能是當前文件可用,其他文件不可用
[zhang3221994 ] 快速瞭解C語言靜態關鍵字static的作用已經有406次圍觀