前言
此文章目前尚未整理完成,如需學習完整內容可參考隨附的 reference,或自行 google 搜尋
但因為作者要整理的筆記太多,如果想早點看到整理後的文章,可以下方留言「期待整理」之類的… 我會努力找時間優先整理!
static extern 這兩個語法上有相關的地方,因此我們擺在一起講
extern
extern 的出現,使我們可以引用外部的 variable/ function ,
使得我們在使用「global」variable/ function 的時候,可以有更多的彈性。
白話文:在 a 檔案的 global,可以在 b 檔案被使用
可以寫在 .h 檔案裡面,告知 include 此 .h 的人,
這裡有個被 extern 的變數,可以隨著 include 時,該變數能被使用。
extern int a;
extern void foo();
static
extern 的出現,使我們可以引用外部的 variable/ function ,
使得我們在使用「global」variable/ function 的時候,可以有更多的彈性。
但這樣也相對的容易造成風險,如果今天是外部的使用者,
透過 extern 也有可能對我們自己本身的程式進行非預期的變數修改,
這樣就可能會造成危險,這就是 static 存在的其中一種意義。
static 使用位置分成五種,這邊以 variable 與 function 拆分,
- static global variable
- static local variable
- static class member variable (C++ 才有,因為才有 class 的概念)
- static function
- static class member function (C++ 才有,因為才有 class 的概念)