導讀相信目前很多小伙伴對于c語言編程中static運用方法都比較感興趣,那么小搜今天在網(wǎng)上也是收集了一些與c語言編程中static運用方法相關的信息...

相信目前很多小伙伴對于c語言編程中static運用方法都比較感興趣,那么小搜今天在網(wǎng)上也是收集了一些與c語言編程中static運用方法相關的信息來分享給大家,希望能夠幫助到大家哦。c語言中static運用方法一、c程序存儲空間布局C程序一向由下列有些組成:1)正文段——CPU履行的機器指令有些;一個程序只要一個副本;只讀,防止程序因為意外事故而修正本身指令;2)初始化數(shù)據(jù)段(數(shù)據(jù)段)——在程序中所有賦了初值的大局變量,寄存在這里。3)非初始化數(shù)據(jù)段(bss段)——在程序中沒有初始化的大局變量;內(nèi)核將此段初始化為0。4)?!黾臃较颍鹤皂斚蛳略黾?;主動變量以及每次函數(shù)調(diào)用時所需求保管的信息(回來地址;環(huán)境信息)。5)堆——動態(tài)存儲分。|-----------|| ||-----------||棧||-----------|| | || |/ || || || /| || | ||-----------||堆||-----------||未初始化||-----------||初始化||-----------||正文段||-----------|語言中static運用方法(2)二、面向進程程序設計中的static1.大局靜態(tài)變量在大局變量之前加上關鍵詞static,大局變量就被界說變成一個大局靜態(tài)變量。1)內(nèi)存中的方位:靜態(tài)存儲區(qū)(靜態(tài)存儲區(qū)在整個程序運轉時間都存在)2)初始化:未經(jīng)初始化的大局靜態(tài)變量會被程序主動初始化為0(主動目標的值是恣意的,除非他被顯現(xiàn)初始化)3)效果域:大局靜態(tài)變量在聲明他的文件之外是不行見的。精確地講從界說之處開端到文件完畢。界說大局靜態(tài)變量的優(yōu)點:不會被其他文件所拜訪,修正其他文件中能夠運用一樣姓名的變量,不會發(fā)生沖突。2.部分靜態(tài)變量在部分變量之前加上關鍵詞static,部分變量就被界說變成一個部分靜態(tài)變量。1)內(nèi)存中的方位:靜態(tài)存儲區(qū)2)初始化:未經(jīng)初始化的大局靜態(tài)變量會被程序主動初始化為0(主動目標的值是恣意的,除非他被顯現(xiàn)初始化)3)效果域:效果域仍為部分效果域,當界說它的函數(shù)或許句子塊完畢的時分,效果域隨之完畢。注:當static用來潤飾部分變量的時分,它就改動了部分變量的存儲方位,從本來的棧中寄存改為靜態(tài)存儲區(qū)??墒遣糠朱o態(tài)變量在脫離效果域之后,并沒有被毀掉,而是依然駐留在內(nèi)存傍邊,直到程序完畢,只不過咱們不能再對他進行拜訪。當static用來潤飾大局變量的時分,它就改動了大局變量的效果域(在聲明他的文件之外是不行見的),可是沒有改動它的寄存方位,仍是在靜態(tài)存儲區(qū)中。3.靜態(tài)函數(shù)在函數(shù)的回來類型前加上關鍵詞static,函數(shù)就被界說變成靜態(tài)函數(shù)。函數(shù)的界說和聲明默許情況下是extern的,但靜態(tài)函數(shù)只是在聲明他的文件傍邊可見,不能被其他文件所用。界說靜態(tài)函數(shù)的優(yōu)點:其他文件中能夠界說一樣姓名的函數(shù),不會發(fā)生沖突靜態(tài)函數(shù)不能被其他文件所用。存儲闡明符auto,register,extern,static,對應兩種存儲期:主動存儲期和靜態(tài)存儲期。auto和register對應主動存儲期。具有主動存儲期的變量在進入聲明該變量的程序塊時被樹立,它在該程序塊活動時存在,退出該程序塊時吊銷。關鍵詞extern和static用來闡明具有靜態(tài)存儲期的變量和函數(shù)。用static聲明的部分變量具有靜態(tài)存儲持續(xù)期(static storage duration),或靜態(tài)規(guī)模(static extent)。盡管他的值在函數(shù)調(diào)用之間堅持有用,可是其姓名的可視性仍約束在其部分域內(nèi)。靜態(tài)部分目標在程序履行到該目標的聲明處時被初次初始化。拓展剖析:術語static有著不尋常的前史.起先,在C中引進關鍵詞static是為了表明退出一個塊后依然存在的部分變量。隨后,static C中有了第二種意義:用來表明不能被其它文件拜訪的大局變量和函數(shù)。為了防止引進新的關鍵詞,所以仍運用static關鍵詞來表明這第二種意義。最終,C++重用了這個關鍵詞,并賦予它與前面不一樣的第三種意義:表明歸于一個類而不是歸于此類的任何特定目標的變量和函數(shù)(與Java中此關鍵詞的意義一樣)。
End本文到此結束,希望對大家有所幫助。
版權說明:本文由用戶上傳,如有侵權請聯(lián)系刪除!
標簽: