1. 程式人生 > 其它 >static函式與普通函式有什麼區別

static函式與普通函式有什麼區別

static函式與普通函式的區別:

  用static修飾的函式,本限定在本原始碼檔案中,不能被本原始碼檔案以外的程式碼檔案呼叫。而普通的函式,預設是extern的,也就是說,可以被其它程式碼檔案呼叫該函式。在函式的返回型別前加上關鍵字static,函式就被定義成為靜態函式。普通 函式的定義和宣告預設情況下是extern的,但靜態函式只是在宣告他的檔案當中可見,不能被其他檔案所用。因此定義靜態函式有以下好處:   

<1> 其他檔案中可以定義相同名字的函式,不會發生衝突。

<2> 靜態函式不能被其他檔案所用。

static函式在記憶體中只有一份,普通函式在每個被呼叫中維持一份拷貝。



C語言中使用靜態函式的好處:

  靜態函式會被自動分配在一個一直使用的儲存區,直到退出應用程式例項,避免了呼叫函式時壓棧出棧,速度快很多。
  關鍵字“static”,譯成中文就是“靜態的”,所以內部函式又稱靜態函式。但此處“static”的含義不是指儲存方式,而是指對函式的作用域僅侷限於本檔案。 使用內部函式的好處是:不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。