C C 中static的作用

2021-08-14 05:37:53 字數 1007 閱讀 8460

此文引用自:

static有什麼作用?

答:在c語言中,static主要定義全域性靜態變數,定義區域性靜態變數,定義靜態函式

一、       定義全域性靜態變數 :在全域性變數前面加上關鍵字static,該全域性變數變成了全域性靜態變數。全域性靜態變數有以下特點:

(1)       在全域性資料區內分配記憶體

(2)       如果沒有初始化,其預設值為0

(3)       該變數在本檔案內從定義開始到檔案結束可見

二、       定義區域性靜態變數:在區域性靜態變數前面加上關鍵字static,該區域性變數便成了靜態區域性變數。靜態區域性變數有以下特點:

(1)       該變數在全域性資料區分配記憶體

(2)       如果不顯示初始化,那麼將被隱式初始化為0

(3)       它始終駐留在全域性資料區,直到程式執行結束

(4)       其作用域為區域性作用域,當定義它的函式或語句塊結束時,其作用域隨之結束。

三、       定義靜態函式:在函式的返回型別加上static關鍵字,函式即被定義成靜態函式。靜態函式有以下特點:

(1)       靜態函式只能在本原始檔中使用

(2)       在檔案作用域中宣告的inline函式預設為static

說明:靜態函式只是乙個普通的全域性函式,只不過受static限制,他只能在檔案坐在的編譯單位內使用,不能呢個在其他編譯單位內使用。

在c++語言中新增了兩種作用:定義靜態資料成員或靜態函式成員

(1)       定義靜態資料成員。靜態資料成員有如下特點:

(1)       記憶體分配:在程式的全域性資料區分配

(2)       初始化和定義:靜態資料成員定義時要分配空間,所以不能在類宣告中定義

(3)       靜態成員函式。靜態成員函式與類相聯絡,不與類的物件相聯絡。靜態成員函式不能訪問非靜態資料成員。原因很簡單,非靜態資料成員屬於特定的類例項,主要用於對靜態資料成員的操作。

(4)       靜態成員函式和靜態資料成員都沒有this指標。

C C 中static的作用

這個簡單的問題很少有人能回答完全。在c語言中,關鍵字static有三個明顯的作用 1 修飾區域性變數 在函式體內,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變 該變數存放在靜態變數區 就是說會區域性變數會儲存上一次賦的值 2 修飾全域性變數 在模組內 但在函式體外 乙個被宣告為靜態的變數...

C C 中Static的作用詳述

在c語言中,static的字面意思很容易把我們匯入歧途,其實它的作用有三條。1 先來介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。...

C C 中Static的作用詳述

1.先來介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是a.c,另乙個是main.c.下面是a.c的內容 char a a global variable voi...