static在c裡面可以用來修飾變量,也可以用來修飾函數。
1.static局部變量
a.生存周期:靜態局部變量在函數內定義,生存期為整個源程序;
b.存儲方式:當用static修飾時,從原來的棧中存放改為靜態存儲區;
c.作用域:與自動變量相同,只能在定義該變量的函數內使用,退出該函數後,盡管該變量還繼續存在,但不能使用它;
d.初始化:對基本類型的靜態局部變量若在說明時未賦以初值,則系統自動賦予0值,而對自動變量不賦初值,則其值是不定的。
2.static全局變量
a.存儲方式:全局變量本身就是靜態存儲方式,靜態全局變量當然也是靜態存儲方式;
b.作用域:非靜態全局變量的作用域是整個源程序多個源文件可以共同使用),而靜態全局變量則限制了其作用域,即只在定義該變量的源文件內有效。
3.static函數
只能被本文件中的函數調用,而不能被同一程序其它文件中的函數調用。區別於一般的非靜態函數外部函數) 。
本文出自 “孫轲的技術博客” 博客,請務必保留此出處http://sunke.blog.51cto.com/4812218/1282566