全局變量聲明和定義的區別
全局變量的聲明(declare),表示其屬性,主要指類型;在A文件引用B文件定義的全部變量,則要在A文件中用extern關鍵字來聲明該變量,而不是再定義一個
全局變量的定義(definition),還會導致爲該變量分配存儲空間
static用法
若是修飾全局變量,則表示該變量的作用域是定義處到文件結束
若是修飾局部變量,則表示該變量是靜態的,生存期爲整個程序的生存期,其存儲空間在程序的全局數據區上分配,而一般局部變量在棧上分配存儲空間
另外有個問題,局部變量會覆蓋同名的全部變量的作用域,從原理上講很簡單,就是編譯器在最頂部的棧上找到了該名字的變量就不會到別處找了,否則是繼續到棧下面找,然後是到全局數據區去找
但是,覆蓋全局變量的作用域有什麼意義呢?