靜態(tài)變量的實現(xiàn)方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了靜態(tài)變量的實現(xiàn)方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網(wǎng)站建設、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的岱岳網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

靜態(tài)變量(StaticVariable)在計算機編程領域指在程序執(zhí)行前系統(tǒng)就為之靜態(tài)分配(也即在運行時中不再改變分配情況)存儲空間的一類變量。與之相對應的是在運行時只暫時存在的自動變量(即局部變量)與以動態(tài)分配方式獲取存儲空間的一些對象,其中自動變量的存儲空間在調(diào)用棧上分配與釋放。

靜態(tài)變量概念與定義

“靜態(tài)變量”這一術(shù)語有兩個容易混淆的定義:

語言無關的通用定義:與程序有著相同生命周期的變量;

C族語言特有的定義:以static存儲類聲明的變量。

而在以Pascal為代表的許多程序語言中,所有局部變量都由系統(tǒng)自動分配存儲空間,而所有全局變量的存儲空間則以靜態(tài)分配的方式獲取(對應“靜態(tài)變量”),因此由于實際上“局部變量”和“全局變量”這兩個術(shù)語已足以涵蓋所有的情況,在這些程序語言中通常不使用“靜態(tài)變量”這一術(shù)語,而直接以“全局變量”代之。一般來說,在這些程序語言中,靜態(tài)變量就是全局變量,而即使在有明確區(qū)分全局和靜態(tài)變量的程序語言中,在編譯后的代碼里二者也以相同的方式獲取存儲空間。而今術(shù)語“靜態(tài)變量”的概念則主要基于C族語言的“static”的定義(即定義2)。

靜態(tài)變量也可以用于存儲常數(shù)。具體來說,靜態(tài)變量(全局變量及匯編語言里定義的符號亦同)可用const,constant或final(根據(jù)語言決定)等關鍵字標識,這時其值就會在編譯時設定,并且無法在運行時改變。編譯器通常將靜態(tài)常量與文本一起置于目標文件的文本區(qū)域,而非常量初始化數(shù)據(jù)則置于數(shù)據(jù)區(qū);而如若有需要,有些編譯器還可選擇為其開辟專用區(qū);為防止常數(shù)變量被錯誤的指針寫入覆蓋,亦可在這塊區(qū)域啟用內(nèi)存保護機制。

C族語言中的靜態(tài)變量實現(xiàn)

在C語言及由其派生出的C++與Objective-C等程序語言中,“static”是用于控制變量的生命周期和連接方式(即其作用域,亦即可見性)的保留字。確切來說,正如C族語言中的extern,auto與register這些保留字一樣,static也是一種存儲類(此處的“類”與面向?qū)ο笳Z言的“類”的定義不同)標識。每個變量與函數(shù)都有以上的一種存儲類標識,如果在聲明中沒有明確標識其存儲類,編譯時就會根據(jù)上下文來選擇其默認存儲類,如在源文件里的所有文件級變量對應的默認存儲類是extern,而在函數(shù)體內(nèi)的變量對應的則是auto,各存儲類的屬性所列。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“靜態(tài)變量的實現(xiàn)方法”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)網(wǎng)站建設公司,,關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關知識等著你來學習!

標題名稱:靜態(tài)變量的實現(xiàn)方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://muchs.cn/article16/cspggg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設網(wǎng)站內(nèi)鏈、網(wǎng)站改版網(wǎng)站制作、做網(wǎng)站微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司