static 修飾符可以應用於全域性變數。當 static 修飾全域性變數時,會使變數的作用域限制在宣告它的檔案內。
static指示編譯器在程式的生命週期內保持區域性變數的存在,不需要在每次它進入和離開作用域時進行建立和銷毀。
簡單說,程式每次走到區域性變數時,都會初始化一次它。但是,如果用了static修飾區域性變數的話,就不用每次遇見都做初始化操作了!
例如:#include
<
iostream
>
int a=1
intmain()
return0;
}輸出結果:
變數i為2;
變數i為3;
變數i為4;
extern 修飾符通常用於當有兩個或多個檔案共享相同的全域性變數或函式的時候。
也就是說,多個檔案,注意是檔案,共享乙個全域性變數或函式,例如:
**用外部的東西,就在哪兒加extern
第乙個檔案:main.cpp
#include
<
iostream
>
intcount
; /*定義全域性變數,注意,如果static修飾的全域性 變數,只限於本檔案中*/
extern
void
write_extern()
; //宣告
要
,引用外部的全域性函式
intmain()
第二個檔案:support.cpp
#include
<
iostream
>
extern
intcount
; //宣告要引用外部全域性變數
void
write_extern
(void)
{ std::
cout
<<
"count is
"<<
count
<<
std::
endl;
在這裡,第二個檔案中的 extern 關鍵字用於宣告已經在第乙個檔案 main.cpp 中定義的 count。現在 ,編譯這兩個檔案,如下所示:
$ g這會產生write可執行程式,嘗試執行write,它會產生下列結果:++main
.cpp support
.cpp
-o write
$./write
countis5
static 和 儲存區
static 資料型別用來給變數建立永久儲存空間.靜態變數在函式間呼叫時保持他們的值不變.當用在乙個類中時,所有要用到靜態變數的時候這個類將把這個變數映象過去.c 與c 的static有兩種用法 面向過程程式設計中的static和物件導向程式設計中的static。前者應用於普通變數和函式,不涉及類 ...
C 之static類成員,static類成員函式
0.static修飾類中成員,表示類的共享資料 1.static類成員 在c primer裡面說過,static類成員不像普通的類資料成員,static類資料成員獨立於一切類物件處在。static類資料成員是與類關聯的,但不與該類定義的物件有任何關係。這句話什麼意思?就是static不會想普通類資料...
儲存類修飾符 static
區域性變數 1.預設初始化為0 2.函式結束不釋放,下次呼叫函式會繼續使用 全域性變數 1.預設初始化為0 2.其他檔案對該變數不可見,降低了程式模組之間的耦合性 函式 1.其他檔案對該函式不可見 static是乙個很有用的關鍵字,使用得當可以使程式錦上添花。當然,有的公司編碼規範明確規定只用於本檔...