static關鍵字在C和C 中的使用方法

2021-06-26 22:05:07 字數 692 閱讀 7000

一、c語言的static關鍵字的兩種使用方法

1)、用於函式內部修飾變數,即函式內的靜態變數。這種變數的生存期長於該函式,是的函式具有一定的「狀態」,使用靜態變數的函式一般是不可重入的,也不是執行緒安全的,比如strtok()

2)用在檔案級別(函式體外),修飾變數或函式,變數該變數或函式只能在文字可見,其他檔案看不到,也訪問不到該變數或函式。

二、c++語言的static關鍵字的四種用法

由於c++引入了class,在保持與c語言相容的同時,static關鍵字又有了兩種新用法:

3)、使用者修飾class的資料成員,即所謂「靜態成員」,這種資料成員的生存期大於class的物件(實體/instance),靜態資料成員是每個class有乙份,普通資料成員是每個iinstance有乙份,因此也分別叫做class variable和instance variable。

4)、用於修飾class的成員函式,即所謂「靜態成員函式」,這種成員函式只能訪問class variable或其他靜態程式函式,不能訪問instance variable或者instance method.

這幾種用法可以相互結合,比如c++的成員函式(無論static還是instance)都可以有其區域性的靜態變數(上面的用法1)。對於class template和function template,其中的static物件的真正個數跟template instantiation(模板具現化)有關。

關鍵字static在C和C 中的作用

在c語言中,關鍵字static主要有兩個作用,c 對它進行了擴充套件。起初,c語言中引入關鍵字static是 為了表示退出乙個塊後仍然存在的區域性變數,後來引入了一種新的含義,表示不能被其他檔案訪問的全域性變數和函式。在c 中,static還可以表示屬於整個類而不是屬於某個特定物件的成員函式和成員變...

c中static關鍵字

看別人的c 會看到很多變數或者函式前面帶有static關鍵字。c中的static和php中的static有很到的不同,在php中static表示靜態化變數,乙個類中的static成員只與類有關,而與類的例項無關。c中的static關鍵字主要用於隱藏 access control 1.隱藏 函式前的s...

C 中static關鍵字

c 的static有兩種用法 面向過程程式設計中的static和物件導向程式設計中的static。前者應用於普通變數和函式,不涉及類 後者主要說明static在類中的作用。一 面向過程設計中的static 1 靜態全域性變數 在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域性變...