1. 用於函式內部修飾變數,即函式內的靜態變數。這種變數的生存期長於該函式,使得函式具有一定的「狀態」。使用靜態變數的函式一般是不可重入的,也不是執行緒安全的,比如strtok(3)。
2. 用在檔案級別(函式體之外),修飾變數或函式,表示該變數或函式只在本檔案可見,其他檔案看不到也訪問不到該變數或函式。專業的說法叫「具有internal linkage」(簡言之:不暴露給別的translation unit)。
c語言的這兩種用法很明確,一般也不容易混淆。
由於c++引入了類,在保持與c語言相容的同時,static關鍵字又有了兩種新用法:
3.用於修飾類的資料成員,即所謂「靜態成員」。這種資料成員的生存期大於class的物件(例項/instance)。靜態資料成員是每個class有乙份,普通資料成員是每個instance 有乙份。
4. 用於修飾class的成員函式,即所謂「靜態成員函式」。這種成員函式只能訪問靜態成員和其他靜態成員函式,不能訪問非靜態成員和非靜態成員函式
static用法總結
static static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域...
static用法總結
static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...
static的用法總結
c 的static有兩種用法 面向過程程式設計中的static和物件導向程式設計中的static。前者應用於普通變數和函式,不涉及類 後者主要說明static在類中的作用。1.面向過程設計中的static 1.1靜態全域性變數 在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域性...