語言里靜態(tài)變量和全局變量有什么區(qū)別?
具體是醬紫的局部靜態(tài)跟全局靜態(tài)內(nèi)存中性質(zhì)一樣,文件里都在數(shù)據(jù)段。唯一區(qū)別局部靜態(tài)變量有作用域限制,是靠編譯器幫忙語法檢測。
局部靜態(tài)變量有個初始化問題,當多次調(diào)用一個含有局部靜態(tài)變量的函數(shù)時候,怎么保持之初始化一次。程序會在內(nèi)存中第一個bit位,來標識是否初始化過。所以答案是,該局部靜態(tài)變量跟全局變量一樣很早就存在于全局數(shù)據(jù)區(qū)。但當?shù)谝淮芜\行到該函數(shù),會檢測一個位,來判斷是否已經(jīng)初始化。參考書籍,c++反匯編與逆向分析技術(shù)揭秘