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