C語言 static靜態變量的做用

C語言 static靜態變量的做用

c語言的變量種類

c語言的變量種類

  1. 靜態變量經過關鍵字 static 進行聲明,該變量存儲在數據段上,也就是內存上,能夠改變變量的做用域和生命週期。
  2. 對於局部變量做用域依舊沒有改變,只有定義該局部變量的函數和複合語句能夠引用,可是其生命週期變成了直到整個源程序文件結束。
  3. 對於全局變量生命週期沒有發生變化,可是其做用域反而有所減少,只有本文件的函數能夠引用該全局變量。
  4. 針對static的特性,只有本文件內的函數能夠引用該變量,在C語言中一個源程序文件就是一個模塊,一個源程序文件(模塊)聲明瞭一個static全局變量以後其餘模塊只能經過該模塊提供的接口函數來訪問這個static變量,而不能直接實現對其進行操做,也就是說static能夠實現一個模塊的封裝。

範例:
創建一個鏈表文件公司工資文件,tax.c:html

  1. #include<stdio.h> 
  2.  
  3. static int base = 10000; //基本的工資基數 
  4.  
  5. int chicken_legs(float i)
  6. return (1 + i)*base; 

創建一個向外界提供一個接口函數聲明,tax.h:ide

  1. extern int chicken_legs(float i)

如其餘源文件user.c須要引用該文件,使用接口文件:函數

  1. #include<stdio.h> 
  2. #include"tax.h" 
  3.  
  4. int main(void)
  5. int wage; 
  6. float increase; 
  7. wage = chicken_legs(increase); 
  8. return 0

user.c這個文件就不能修改tax.c中的用static聲明的 base,而只能引用接口函數,static 關鍵字使文件中的全局變量的範圍侷限於該文件中,從而起到一個封裝文件的做用spa

相關文章
相關標籤/搜索