|
最主要有兩點(diǎn)用途。
讓一個(gè)變量長(zhǎng)期有效,而不管其是在什么地方被申明。比如:
int fun1()
{
static int s_value = 0;
....
}
那么fun1不管在什么地方被調(diào)用,當(dāng)函數(shù)退出后,s_value最后的值將一直會(huì)被系統(tǒng)保存(相當(dāng)于一個(gè)全局變量),下次s_value再被用到時(shí),也即當(dāng)fun1()再次被調(diào)用時(shí),s_value初始值將是最近被保存過的值(請(qǐng)注意s_value初始化操作只會(huì)被執(zhí)行一次,即上述s_value =0 這個(gè)語句)。
2.避免多個(gè)文件使用了相同的變量名而導(dǎo)致沖突
比如有多個(gè)文件,分別由幾個(gè)人獨(dú)立開發(fā)的。假定他們?cè)诟髯缘奈募卸x相同的“全局”變量名(僅僅指在他們獨(dú)自的文件中全局),當(dāng)系統(tǒng)集成時(shí),由于他們使用了名字一樣的“全局”變量,導(dǎo)致有難于遇見的問題。解決這個(gè)問題方便的做法就是在各自文件中,在相同的全局變量申明前加上static修飾符。這樣系統(tǒng)就會(huì)為他們分配不同的內(nèi)存,互不影響了。 |
|