- 編寫高質量代碼:改善C程序代碼的125個建議
- 馬偉 著
- 524字
- 2019-01-01 01:33:14
建議8-1:定義局部變量時應該省略auto關鍵字
在默認情況下,所有的局部變量都是auto型的變量(也稱為自動變量),而且會為這些變量動態分配存儲空間,數據則存儲在動態存儲區中。因此,它的生存期比較短暫:當調用函數時,系統為該函數的自動變量分配內存,等程序從該函數返回,即調用過程結束時,系統就會釋放所有該函數的自動變量。這個過程是通過一個堆棧機制實現的,為自動變量分配內存就壓棧,當函數返回時則退棧。
需要說明的是,既然自動變量就是指在函數內部定義使用的變量(局部變量),那么也就只允許在定義它的函數內部使用它,在函數外的其他任何地方都不能使用該變量。當然,這也充分說明自動變量沒有鏈接性,因為它不允許其他的文件進行訪問。因此,這也就允許我們在這個函數以外的其他任何地方或其他的函數內部定義同名的變量,并且它們之間不會發生任何沖突。雖然這種變量的命名方式不是我們所推薦的,但卻是C語言所允許的。
來看一個自動變量的定義示例:
int main(void) { /*定義整型變量x為自動變量*/ auto int x=0; /*定義整型變量y,缺省存儲類型時為自動變量*/ int y=0; ...... }
在上面的代碼中,默認情況下,所有的局部變量都是自動變量,所以說變量x與變量y一樣,都是自動變量。因此,我們在聲明局部變量時,應該省略auto關鍵字。
推薦閱讀
- Unity 2020 By Example
- 從零開始:數字圖像處理的編程基礎與應用
- Learning Cython Programming
- PaaS程序設計
- Interactive Data Visualization with Python
- C#編程入門指南(上下冊)
- Apache Spark 2.x Machine Learning Cookbook
- 程序員面試算法寶典
- Visual C++數字圖像模式識別技術詳解
- Programming ArcGIS 10.1 with Python Cookbook
- Mastering Kotlin
- Mastering Python Scripting for System Administrators
- C語言程序設計實踐教程
- Python Network Programming Cookbook(Second Edition)
- Learning Zurb Foundation