C語言中全局變量和局部變量的區別是他們的作用域不同,全局變量是整個C程序,局部變量是定義所在的大括號內,同一個作用域內不能定義兩個同類型同名的變量,因為編譯會報錯。
由1個或者多個C文件組成的工程中,可以定義和全局變量同名同類的局部變量,但是不提倡這樣使用,因為此時變量的值和變量被調用的位置有關系。
使用全局變量時,需要先用extern關鍵字聲明,全局函數也是用相同的關鍵字。
順便復習static關鍵字:
static主要定義全局靜態變量、定義局部靜態變量、定義靜態函數。
特點\用法 | 定義全局靜態變量 | 定義局部靜態變量 | 定義靜態函數 |
內存 | 全局數據區分配 | 全局數據區分配 | 無 |
作用域 | 文件內定義開始到文件結束,其他文件不可用,不可繼承,其他文件可以定義重名變量 | 函數內定義開始到函數結束 | 文件內定義開始到文件結束 |
可見域 | 文件內定義開始到文件結束 | 函數內定義到文件結束,局部可用,但是全局可見,局部函數返回其值可見 | 文件內定義開始到文件結束 |
參考博客地址:https://blog.csdn.net/guotianqing/article/details/79828100