官术网_书友最值得收藏!

建議8-1:定義局部變量時應該省略auto關鍵字

在默認情況下,所有的局部變量都是auto型的變量(也稱為自動變量),而且會為這些變量動態分配存儲空間,數據則存儲在動態存儲區中。因此,它的生存期比較短暫:當調用函數時,系統為該函數的自動變量分配內存,等程序從該函數返回,即調用過程結束時,系統就會釋放所有該函數的自動變量。這個過程是通過一個堆棧機制實現的,為自動變量分配內存就壓棧,當函數返回時則退棧。

需要說明的是,既然自動變量就是指在函數內部定義使用的變量(局部變量),那么也就只允許在定義它的函數內部使用它,在函數外的其他任何地方都不能使用該變量。當然,這也充分說明自動變量沒有鏈接性,因為它不允許其他的文件進行訪問。因此,這也就允許我們在這個函數以外的其他任何地方或其他的函數內部定義同名的變量,并且它們之間不會發生任何沖突。雖然這種變量的命名方式不是我們所推薦的,但卻是C語言所允許的。

來看一個自動變量的定義示例:


int main(void)
{
/*定義整型變量x為自動變量*/
auto int x=0;
/*定義整型變量y,缺省存儲類型時為自動變量*/
int  y=0;
......
}

在上面的代碼中,默認情況下,所有的局部變量都是自動變量,所以說變量x與變量y一樣,都是自動變量。因此,我們在聲明局部變量時,應該省略auto關鍵字。

主站蜘蛛池模板: 瓦房店市| 额敏县| 花莲县| 青州市| 鲁山县| 十堰市| 凭祥市| 阜新市| 松溪县| 海安县| 尚志市| 邯郸市| 灵寿县| 娄烦县| 舞阳县| 兴城市| 阳东县| 禹城市| 化德县| 潼关县| 锦屏县| 桑日县| 赤壁市| 长春市| 东乡县| 宣威市| 海阳市| 酉阳| 宜春市| 惠东县| 靖宇县| 金塔县| 化德县| 汤原县| 平武县| 西宁市| 晋江市| 师宗县| 永登县| 峨边| 晋江市|