static局部變量和全局變量 static局部變量和全局變量的區(qū)別?
static局部變量和全局變量的區(qū)別?在描述全局變量(外部變量)之前,先形成靜態(tài)全局變量。全局變量本身是靜態(tài)存儲(chǔ)方法,靜態(tài)全局變量也是靜態(tài)存儲(chǔ)方法。兩者的存儲(chǔ)模式?jīng)]有區(qū)別。兩者的區(qū)別在于非靜態(tài)全局變量
static局部變量和全局變量的區(qū)別?
在描述全局變量(外部變量)之前,先形成靜態(tài)全局變量。
全局變量本身是靜態(tài)存儲(chǔ)方法,靜態(tài)全局變量也是靜態(tài)存儲(chǔ)方法。兩者的存儲(chǔ)模式?jīng)]有區(qū)別。兩者的區(qū)別在于非靜態(tài)全局變量的作用域是整個(gè)源程序。當(dāng)源程序由多個(gè)源文件組成時(shí),非靜態(tài)全局變量在每個(gè)源文件中都是有效的。靜態(tài)全局變量限制了它的作用域,即它只在定義變量的源文件中有效,不能在同一源程序的其他源文件中使用。由于靜態(tài)全局變量的作用域僅限于一個(gè)源文件,因此只能由源文件中的函數(shù)共享,從而避免在其他源文件中引起錯(cuò)誤。從以上分析可以看出,將局部變量改為靜態(tài)變量會(huì)改變其存儲(chǔ)方式,即改變其生存期(靜態(tài)局部變量在程序運(yùn)行結(jié)束時(shí)釋放空間,普通靜態(tài)局部變量在函數(shù)退出時(shí)釋放空間)。將全局變量改為靜態(tài)變量后,其作用域發(fā)生變化,應(yīng)用范圍受到限制。靜態(tài)函數(shù)的范圍不同于普通函數(shù)。僅在本文檔中。僅在當(dāng)前源文件中使用的函數(shù)應(yīng)描述為靜態(tài)函數(shù),內(nèi)部函數(shù)應(yīng)在當(dāng)前源文件中描述和定義。對(duì)于可以在當(dāng)前源文件之外使用的函數(shù),應(yīng)該在頭文件中進(jìn)行說明。使用這些函數(shù)的源文件應(yīng)該包含這個(gè)頭文件(用static聲明的內(nèi)部函數(shù))。內(nèi)部函數(shù)是指只能由該文件中的其他函數(shù)調(diào)用的函數(shù)。內(nèi)部函數(shù)其實(shí)是用C定義的,可以通過類名修飾符訪問全局變量(外部變量)的描述
,然后用static來形成一個(gè)靜態(tài)全局變量。全局變量本身是靜態(tài)存儲(chǔ)方法,靜態(tài)全局變量也是靜態(tài)存儲(chǔ)方法。兩者的存儲(chǔ)模式?jīng)]有區(qū)別。兩者的區(qū)別在于非靜態(tài)全局變量的作用域是整個(gè)源程序。當(dāng)源程序由多個(gè)源文件組成時(shí),非靜態(tài)全局變量在每個(gè)源文件中都是有效的。靜態(tài)全局變量限制了它的作用域,即它只在定義變量的源文件中有效,不能在同一源程序的其他源文件中使用。由于靜態(tài)全局變量的作用域僅限于一個(gè)源文件,因此只能由源文件中的函數(shù)共享,從而避免在其他源文件中引起錯(cuò)誤。從以上分析可以看出,將局部變量改為靜態(tài)變量會(huì)改變其存儲(chǔ)方式,即改變其生存期(靜態(tài)局部變量在程序運(yùn)行結(jié)束時(shí)釋放空間,普通靜態(tài)局部變量在函數(shù)退出時(shí)釋放空間)。將全局變量改為靜態(tài)變量后,其作用域發(fā)生變化,應(yīng)用范圍受到限制。靜態(tài)函數(shù)的范圍不同于普通函數(shù)。僅在本文檔中。僅在當(dāng)前源文件中使用的函數(shù)應(yīng)描述為靜態(tài)函數(shù),內(nèi)部函數(shù)應(yīng)在當(dāng)前源文件中描述和定義。對(duì)于可以在當(dāng)前源文件之外使用的函數(shù),應(yīng)該在頭文件中進(jìn)行說明。使用這些函數(shù)的源文件應(yīng)該包含這個(gè)頭文件(內(nèi)部函數(shù)用static聲明)。內(nèi)部函數(shù)是指只能由該文件中的其他函數(shù)調(diào)用的函數(shù)。內(nèi)部函數(shù)實(shí)際上可以通過C中的類名修飾符訪問,其他的是外部函數(shù))
static局部變量和全局變量的區(qū)別?
所有程序都可以訪問靜態(tài)全局變量。通常,可以在類中訪問它們。靜態(tài)變量在賦值之后總是存在的。除非重新啟動(dòng)應(yīng)用程序或回收值,否則它們將無效。靜態(tài)變量是單例模式。在多線程中,會(huì)出現(xiàn)線程安全問題,造成變量污染。
無需實(shí)例化類即可直接調(diào)用靜態(tài)函數(shù),靜態(tài)方法是線程安全的。