C中 static 的用法

2021-06-25 08:02:34 字數 372 閱讀 2542

對於函式而言,僅僅為隱藏作用。

對於變數而言,

1、隱藏 

2、可以保持變數內容的持久,因為static變數儲存在靜態儲存區只在程式的剛開始完成初始化,唯一的一次初始化(即使在子函式中作靜態變數)。若未賦值,則系統自動賦予0值。為自動區域性變數不賦初值的話,其值不定。

當編譯多個檔案時,所有未加static字首的全域性變數和函式都具有可見性。如果 加上static,就會對其原始檔隱藏。利用這一特性可以在不同檔案定義同名的函式及同名變數。

儲存在靜態儲存區的兩種變數:

1、全域性變數  

2、static靜態區域性變數(static控制了其可見範圍)這兩種變數的預設初始化為0 。因為靜態資料區記憶體中所有位元組的預設值都是  0x00

C 中的static用法小結

static定義靜態全域性變數時 1.未初始化的靜態全域性變數被程式自動賦為0,好像不加static程式也會自動設為0,函式內部定義的變數如果不初始化就使用就會出錯,程式不會自動賦值 2.靜態全域性變數對工程裡面的其他檔案來說是不可用的,也就是乙個全域性變數變成靜態全域性變數之後,其他檔案可以定義相...

c 中static的用法詳解

c語言的static關鍵字有三種用途,可從兩個方面來分析 1 作用域,2 生存期 1.靜態區域性變數 用於函式體內部修飾變數,這種變數的生存期一直到程式關閉。作用域 函式體內部,生存期 整個程式執行期間 int foo 要明白這個用法,我們首先要了解c c 的記憶體分布,以及static所在的區間。...

c 中static的用法詳解

1.靜態區域性變數 用於函式體內部修飾變數,這種變數的生存期長於該函式。int foo 要明白這個用法,我們首先要了解c c 的記憶體分布,以及static所在的區間。對於乙個完整的程式,在記憶體中的分布情況如下 棧區 由編譯器自動分配釋放,像區域性變數,函式引數,都是在棧區。會隨著作用於退出而釋放...