存儲(chǔ)類(lèi)
[轉(zhuǎn)自]通關(guān)旅的博客
在C++中有5個(gè)存儲(chǔ)類(lèi)說(shuō)明符,auto,register, extern mutable 和static.
存儲(chǔ)類(lèi)說(shuō)明符可以分為兩個(gè)存儲(chǔ)類(lèi),"自動(dòng)存儲(chǔ)類(lèi)"和"靜態(tài)存儲(chǔ)類(lèi)"
auto和register用于聲明自動(dòng)存儲(chǔ)類(lèi)的變量,此類(lèi)變量是在進(jìn)入聲明的塊時(shí)創(chuàng)建的,它們只存在與塊被激活的期間,當(dāng)程序執(zhí)行退出塊時(shí),這些變量就會(huì)被刪除。
只有變量可以作為自動(dòng)存儲(chǔ)類(lèi),函數(shù)的局部變量和參數(shù)通常屬于自動(dòng)存儲(chǔ)類(lèi)。
auto double x, y;
注意:用自動(dòng)存儲(chǔ)可以節(jié)省內(nèi)存,我做程序的宗旨就是簡(jiǎn)單有效的是使用內(nèi)存,為了能有效的使用內(nèi)存,
我都是盡量有效的規(guī)劃我的資源.
對(duì)比auto,register 只能隨局部變量和函數(shù)參數(shù)一起使用。
register int x = 1;
關(guān)鍵字extern 和 static 是用于聲明變量和靜態(tài)存儲(chǔ)類(lèi)函數(shù)的說(shuō)明符,它們存在于程序開(kāi)始執(zhí)行時(shí),程序在開(kāi)始時(shí)就為它們分配了初始化的存儲(chǔ)空間,但并不意味著這些標(biāo)識(shí)符可用于整個(gè)程序中,其還有作用域的約束 。