1.隱藏函數
當咱們同時編譯多個文件的時候,全部沒加static的全局變量和函數都具備全局可見性,其餘的源文件也能夠訪問spa
若是加了static,就會對其餘源文件隱藏,利用這個特性能夠在不一樣的文件中定義同名函數和同名變量,不用擔憂命名衝突。作用域
2.對於變量,static還能夠:保持變量內容的持久編譯
存儲在靜態數據區的變量會在第一次運行到的時候完成初始化,也是惟一的一次初始化。變量
有2種變量存儲在靜態存儲區:全局變量和靜態變量命名
比起全局變量,static更加能夠控制變量的可見範圍數據
3.對於變量,static默認初始化爲0static
注意:文件
全局變量和static全局變量的區別:
做用域
局部變量和static局部變量的區別:
生存期
static局部變量只被初始化一次,之後根據上一次結果值
static函數與普通函數的區別:
做用域