static 修飾全域性變數 區域性變數和函式的區別

2021-07-08 17:28:33 字數 454 閱讀 6893

一、全域性變數與static全域性變數

首先要清楚全域性變數本身就是靜態儲存,加上static肯定也是靜態儲存。

兩者的主要區別在於作用域。

普通的全域性變數其作用域為整個源程式,各個原始檔之間都可以訪問到這個普通全域性變數。

靜態的全域性變數其作用域僅為定義該變數的原始檔,其他原始檔訪問不到這個靜態全域性變數嗎,更加安全。

另外,static全域性變數只能初始化一次。

二、區域性變數與static區域性變數

這兩者的主要區別在於:

區域性變數本身是儲存在棧區,加上static後儲存在靜態區。

另外,static區域性變數只能被初始化一次。

三、普通函式和static函式

這兩者的區別也是作用域。

static函式僅能在當前原始檔內部之間互相呼叫。

static函式在記憶體中只有乙份。

普通函式每次呼叫都會存乙份。

static全域性 區域性變數,全域性變數及區域性變數

1 static變數和全域性變數都是分配在 靜態儲存區 2 static全域性變數 static區域性變數 全域性變數和區域性變數區別 他們都是分配在 靜態儲存區內,都是在程式開始的時候初始化的,他們的區別是作用域不同,static全域性變數作用域是在申明所在的檔案中,而全域性變數是全域性的,其他檔...

static作用(修飾函式 區域性變數 全域性變數)

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

static作用(修飾函式 區域性變數 全域性變數)

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