C語言中關鍵字static的用法記錄

2021-10-18 17:30:35 字數 843 閱讀 8923

1、區域性變數

c語言中static關鍵字使用恰當可大大提高程式模組化程度,有利於擴充套件和維護。

用static修飾的區域性變數叫靜態區域性變數即使在申請時未賦值編譯器也會自動初始化為0。切靜態區域性變數儲存於程序的全域性儲存區即使函式返回,它的值也不變。

變數在全域性資料區分配記憶體空間;編譯器自動對其初始化

其作用域為區域性作用域,當定義它的函式結束時,其作用域隨之結束

2. 全域性變數

全域性變數定義在函式體外部,在全域性資料區分配儲存空間,且編譯器會自動對其初始化。

普通全域性變數對整個工程可見,其他檔案可以使用extern外部宣告後直接使用。也就是說其他檔案不能再定義乙個與其相同名字的變數了(否則編譯器會認為它們是同乙個變數)。

靜態全域性變數僅對當前檔案可見,其他檔案不可訪問,其他檔案可以定義與其同名的變數,兩者互不影響。

在定義不需要與其他檔案共享的全域性變數時,加上static關鍵字能夠有效地降低程式模組之間的耦合,避免不同檔案同名變數的衝突,且不會誤使用。

2、函式

函式的使用方式與全域性變數類似,在函式的返回型別前加上static,就是靜態函式。其特性如下:

靜態函式只能在宣告它的檔案中可見,其他檔案不能引用該函式

不同的檔案可以使用相同名字的靜態函式,互不影響

非靜態函式可以在另乙個檔案中直接引用,甚至不必使用extern宣告

總結區域性變數加static修飾,在當前函式中可代替全域性變數只初始化一次,作用域為當前函式

全域性變數加static修飾,在當前檔案中定義全域性變數,作用域為當前檔案其他檔案不可呼叫,其他檔案全域性變數可命名一致。

函式前加static修飾,為當前檔案私有,不同的檔案可以使用相同名字的靜態函式,互不影響。

C語言中的static關鍵字

c語言中的變數 1.自動變數。變數在執行到他的塊尾時就超出了作用域,它在堆疊上分配的記憶體會被釋放,以供另乙個函式使用。它們是在宣告時自動建立的,在程式退出宣告它的塊後自動刪除。2.全域性變數。可以在任意位置訪問,它的宣告方式和一般變數相同,但是它的位置非常重要,這個位置決定了變數是否為全域性變數。...

C語言中的static關鍵字

static關鍵字,意為靜態。靜態區域性變數void add test 靜態全域性變數 c程式一直由下列部分組成 1 正文段 cpu執行的機器指令部分 乙個程式只有乙個副本 唯讀,防止程式由於意外事故而修改自身指令 2 初始化資料段 資料段 在程式中所有賦了初值的全域性變數,存放在這裡。3 非初始化...

C語言中static關鍵字用法

static關鍵字在c語言中比較常用,使用恰當能夠大大提高程式的模組化特性,有利於擴充套件和維護。變數1.區域性變數 普通區域性變數是再熟悉不過的變數了,在任何乙個函式內部定義的變數 不加static修飾符 都屬於這個範疇。編譯器一般不對普通區域性變數進行初始化,也就是說它的值在初始時是不確定的,除...