全域性變數宣告和定義的區別
全域性變數的宣告
(declare)
,表示其屬性,主要指型別;在
a檔案引用
b檔案定義的全部變數,則要在
a檔案中用
extern
關鍵字來宣告該變數,而不是再定義乙個
全域性變數的定義
(definition)
,還會導致為該變數分配儲存空間
static
用法若是修飾全域性變數,則表示該變數的作用域是定義處到檔案結束
若是修飾區域性變數,則表示該變數是靜態的,生存期為整個程式的生存期,其儲存空間在程式的全域性資料區上分配,而一般區域性變數在棧上分配儲存空間
另外有個問題,區域性變數會覆蓋同名的全部變數的作用域,從原理上講很簡單,就是編譯器在最頂部的棧上找到了該名字的變數就不會到別處找了,否則是繼續到棧下面找,然後是到全域性資料區去找
但是,覆蓋全域性變數的作用域有什麼意義呢?
C語言總結規範二 變數
目錄 基本資料型別 複雜資料型別 變數的字首 變數命名 型別轉換 移位 變數 常量 識別符號命名 基本型別使用巨集定義替換。書寫規範,命名區分,字尾增加型別說明 統一格式命名 成員過多則進行拆分成子結構 合理安排元素位置,便於閱讀和空間的節省 資料精簡以及考慮相容性 不同環境使用或者通訊應考慮位元組...
C語言 變數
整形變數的定義 有符號 int a int a 有符號整形 範圍 0 2 32 long int a long a 有符號長整形 範圍 0 2 32 short ing a short a 有符號短整型 範圍 0 2 16 無符號unsigned int a unsigned a 無符號整形 範圍 ...
《C語言變數》
我先舉乙個例子,如果我有乙個倉庫,我想把一些東西放進去,比如蘋果 西瓜等等。1 首先,我是不是應該要知道我要放的東西體積多大,還有就是 需要找多大的空間能放得下它。計算機的儲存空間就相當於這裡的倉庫。2 對倉庫來說它並不知道是蘋果還是西瓜,它只知道存放的是體積不一樣大的物體,因為名字是我們人類命名的...