C語言 static靜態變量的作用


C語言 static靜態變量的作用

c語言的變量種類

c語言的變量種類

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

范例:
建立一個鏈表文件公司工資文件,tax.c:

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

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

  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 關鍵字使文件中的全局變量的范圍局限於該文件中,從而起到一個封裝文件的作用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM