C語言各種儲存模式的區別 最常用的儲存模式有哪些

2025-03-02 16:20:07 字數 2662 閱讀 3714

1樓:匿名使用者

一、auto auto稱為自動變數。 區域性變數是指在函式內部說明的變數(有時也稱為自動變數)。用關鍵字auto進7行說明, 當auto省略時, 所有的非全程變數都被認為是區域性變數, 所以auto實際上從來不用。

區域性變數在函式呼叫時自動產生, 但不會自動初始化, 隨函式呼叫的結束, 這個賣餘變數也就自動消失了, 下次呼叫此函式時再自動產生, 還要再賦值, 退出時又自動消失。 二、static static稱為靜態變數。根據變數的型別可以分為靜態區域性變數和靜態全程變數。

1. 靜態區域性變數 它與區域性變數的區別在於: 在函式退出時, 這個變數始終存在, 但不能被其它、函式使用, 當再次進入該函式時, 將儲存上次的結果。

其它與區域性變數一樣。 2. 靜態全程變數 turbo 允許將大型程式分成若干獨立模組檔案分別編譯, 然後將所有模組的目標檔案連線在一起, 從而提高編譯速度, 同時也便於軟體的管理和維護中緩滾。

靜態全程變數就是指只在定義它的原始檔中可見而在其它原始檔中不可見的變數。它與全程變數的區別是: 全程變數可以再說明為外部變數(extern), 被其它原始檔使用,而靜態全程變數卻不能再被說明為外部的, 即只能被所在的原始檔使用。

三、extern extern稱為外部變數。為了使變數除了在定義它的原始檔中可以使用外, 還要被其它檔案使用。因此, 必須將全程變數通知每乙個程式模組檔案, 此時可用extern來說明。

四、register register稱為暫存器變數。它只能用於整型和字元型變數。定義符register說明的變數被turbo 儲存在cpu的暫存器中, 而不是象普通的變數那樣儲存在記憶體中, 這樣可以提高哪猛運算速度。

但是turbo 只允許同時定義兩個暫存器變數,一旦超過兩個, 編譯程式會自動地將超過限制數目的暫存器變數當作非暫存器變數來處理。因此, 暫存器變數常用在同一變數名頻繁出現的地方。另外, 暫存器變數只適用於區域性變數和函式的形式引數, 它屬於auto型變數,因此, 不能用作全程變數。

定義乙個整型暫存器變數可寫成: register int a;

常用的儲存的三種模式

2樓:我隨風動

隔離貯存:在同一房間或同一區域內,不同的物料之間分開一定的距離,非禁忌物料間用通道保持空間的貯存方式。

隔開貯存:在同一建築或同一區域內,用隔板或牆,將其與禁忌物料分離開的貯存方式。

分離貯存:在不同的建築物或遠離所有建築的外部區域內的貯存方式。

c語言中有哪些儲存型別?

3樓:千鋒教育

c語言中的儲存型別有auto, extern, register, static 這四種,儲存型別說明了該變數要在程序的哪乙個段中分配記憶體空間,可以為變數分配記憶體儲存空間的有資料區、bbs區、棧區、堆區。

1. auto儲存型別。

auto只能用來標識區域性變數的儲存型別,對於區域性變數,auto是預設的儲存型別,不需要顯示的指定。因此,auto標識的變數儲存在棧區中。

2. extern儲存型別。

extern用來宣告在當前檔案中引用在當前專案中的其它檔案中定義的全域性變數。如果全域性變數未被初始化,那麼將被存在bbs區中,且在編譯時,自動將其值賦值為0,如果已經被初始化,那麼就被存在資料區中。全域性變數,不管是否被初始化,其生命週期都是整個程式執行過程中,為了節省記憶體空間,在當前檔案中使用extern來宣告其它檔案中定義的全域性變數時,就不會再為其分配記憶體空間。

3. register儲存型別。

宣告為register的變數在由記憶體調入到cpu暫存器後,則常駐在cpu的暫存器中,因此訪問register變數將在很大程度上提高效率,因為省去了變數由記憶體調入到暫存器過程中的好幾個指令週期。

4. static儲存型別。

被宣告為靜態型別的變數,無論是全域性的還是區域性的,都儲存在資料區中,其生命週期為整個程式,如果是靜態區域性變數,其作用域為一對{}內,如果是靜態全域性變數,其作用域為當前檔案。靜態變數如果沒有被初始化,則自動初始化為0。靜態變數只能夠初始化一次。

4樓:匿名使用者

自動,靜態,外部,寄存在函式體內宣告的變數在預設情況下都是auto儲存型別。

在**塊之間傳遞資訊的一種方法就是使用外部變數。當乙個變數在函式的外部被宣告時,安的儲存空間是永久分配的,安人儲存型別是extren.外部變數的宣告看上去和函式或**塊內部所宣告的變數一樣。

外部變數對於它之後的所有函式都有效。在**塊或函式後,外部變數仍然存在。

static的基本用途是允許乙個區域性變數在重新進入**塊時能夠保持原來的值。這和自動變數形成了鮮明的對比,自動變數在**塊時會被銷燬,再次進入這個**塊時,它必須重新進行初始化。

register儲存型別告訴編譯器相關的變數應該改量儲存在高速度的暫存器中。使用register儲存型別的目的一般是為了提高執行速度,但是,register宣告只是向編譯器所提出的「建議」,並非強制要求。

5樓:匿名使用者

在c語言中,具體的儲存類別有自動(auto)、暫存器(register)、靜態(static)及外部(extern)四種。 靜態儲存類別與外部儲存類別變數存放在靜態儲存區, 自動儲存類別變數存放在動態儲存區, 暫存器儲存類別直接送暫存器。

在c語言中,儲存類別包括

6樓:網友

a 靜態。

靜態變數屬於靜態儲存型別,而不管其是區域性變數還是全域性變數。

家裝各種材料常用的有哪些,家裝最常用的材料有哪些?

裝修都需要哪些材料 前期材料 在開工之前,需要先定製好櫥櫃 門窗等產品,在定製櫥櫃時,應選用耐用的五金配件,再將水槽和龍頭一併訂購好。陽臺窗建議選擇斷橋鋁中空玻璃材質,隔熱隔音效果更佳,防盜門建議選擇安全係數較高的產品,使用起來更加放心。裝修都需要哪些材料 吊頂材料 在裝修過程中,吊頂是不可或缺的專...

C語言和C 的區別

c與c 的最大區別 在於它們的用於解決問題的思想方法不一樣。之所以說c 比c更先進,是因為 設計這個概念已經被融入到c 之中 而就語言本身而言,在c中更多的是演算法的概念。那麼是不是c就不重要了,錯!演算法是程式設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,c加上好的設計 也能寫出非常好的...

目前最常用的開發軟體的程式語言是什麼

這需要看將來想從事什麼型別軟體的開發吧。如果在國內開發windows型別應用程式,據說vb比較流行,但如果開發和硬體關係較大的嵌入式程式,則使用較多的還是c語言,而網路這個方面,無論是有線還是無線,大多數都選擇了java。以上是從應用角度來講的,如果從效能和投入方面分析,c語言無疑效能上最好的,但它...