【草稿】【C++ 基礎語法 #4】C++ extern, static 筆記

前言

此文章目前尚未整理完成,如需學習完整內容可參考隨附的 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 使用於 variable
    • static global variable
    • static local variable
    • static class member variable (C++ 才有,因為才有 class 的概念)
  • static 使用於 function
    • static function
    • static class member function (C++ 才有,因為才有 class 的概念)
  • static 使用於 variable

    static global variable

    static local variable

    static class member variable (C++ 才有,因為才有 class 的概念)

    static 使用於 function

    static function

    static class member function (C++ 才有,因為才有 class 的概念)

    Reference