修飾全局變量
在全局變量前加static,全局變量就被定義成為一個全局靜態(tài)變量
特點(diǎn)如下:
1)存儲區(qū):靜態(tài)存儲區(qū)沒變(靜態(tài)存儲區(qū)在整個程序運(yùn)行期間都存在);
2)作用域:全局靜態(tài)變量在聲明他的文件之外是不可見的。準(zhǔn)確地講從定義之處開始到文件結(jié)尾。非靜態(tài)全局變量的作用域是整個源程序(多個源文件可以共同使用); 而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效, 在同一源程序的其它源文件中不能使用它。但是在OC中,如果全局靜態(tài)變量聲明在.h中,其作用域還是整個源程序。
好處:
1)不會被其他文件所訪問,修改;
2)其他文件中可以使用相同名字的變量,不會發(fā)生沖突。
修飾局部變量
在局部變量之前加上關(guān)鍵字static,局部變量就被定義成為一個局部靜態(tài)變量。
特點(diǎn)如下:
1)存儲區(qū):由棧變?yōu)殪o態(tài)存儲區(qū),生存期為整個源程序;
2)作用域:作用域仍為局部作用域,當(dāng)定義它的函數(shù)或者語句塊結(jié)束的時候,作用域隨之結(jié)束。