1. 程式人生 > >static修飾的函式作用與意義

static修飾的函式作用與意義

static修飾的函式叫做靜態函式,靜態函式有兩種,根據其出現的地方來分類:

  • 如果這個靜態函數出現在類裡,那麼它是一個靜態成員函式

        靜態成員函式的作用在於:呼叫這個函式不會訪問或者修改任何物件(非static)資料成員

        其實很好理解,類的靜態成員(變數和方法)屬於類本身,在類載入的時候就會分配記憶體,可以通過類名直接去訪問;非靜態成員(變數和方法)屬於類的物件,所以只有在類的物件產生(建立類的例項)時才會分配記憶體,然後通過類的物件(例項)去訪問。

  • 如果它不是出現在類中,那麼它是一個普通的全域性的靜態函式
        這樣的static函式與普通函式的區別是:用static修飾的函式,限定在本原始碼檔案中,不能被本原始碼檔案以外的程式碼檔案呼叫。而普通的函式,預設是extern的,也就是說它可以被其它程式碼檔案呼叫。

  在函式的返回型別前加上關鍵字static,函式就被定義成為靜態函式。普通 函式的定義和宣告預設情況下是extern的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。因此定義靜態函式有以下好處:
  <1> 其他檔案中可以定義相同名字的函式,不會發生衝突。
  <2> 靜態函式不能被其他檔案所用。