C語言變量總結

全局變量聲明和定義的區別

全局變量的聲明(declare),表示其屬性,主要指類型;在A文件引用B文件定義的全部變量,則要在A文件中用extern關鍵字來聲明該變量,而不是再定義一個

全局變量的定義(definition),還會導致爲該變量分配存儲空間

 

static用法

若是修飾全局變量,則表示該變量的作用域是定義處到文件結束

若是修飾局部變量,則表示該變量是靜態的,生存期爲整個程序的生存期,其存儲空間在程序的全局數據區上分配,而一般局部變量在棧上分配存儲空間

 

另外有個問題,局部變量會覆蓋同名的全部變量的作用域,從原理上講很簡單,就是編譯器在最頂部的棧上找到了該名字的變量就不會到別處找了,否則是繼續到棧下面找,然後是到全局數據區去找

但是,覆蓋全局變量的作用域有什麼意義呢?
發佈了38 篇原創文章 · 獲贊 1 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章