static函式和普通函式的區別

2022-05-24 21:57:08 字數 284 閱讀 3294

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

用static修飾的函式,本限定在本原始碼檔案中,不能被本原始碼檔案以外的**檔案呼叫。而普通的函式,預設是extern的,也就是說,可以被其它**檔案呼叫該函式。

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

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

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

static 函式和普通函式

全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方 式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態 的全域性變數在各個原始檔中都...

static函式與普通函式

全域性變數 外部變數 的說明之前再冠以static 就構成了靜態的全域性變數。全域性變數本身就是靜態儲存方式,靜態全域性變數當然也是靜態儲存方 式。這兩者在儲存方式上並無不同。這兩者的區別雖在於非靜態全域性變數的作用域是整個源程式,當乙個源程式由多個原始檔組成時,非靜態 的全域性變數在各個原始檔中都...

內聯函式和巨集 普通函式 static的區別

內聯函式 1 對inline函式的處理發生在編譯階段,在呼叫點,把函式的 直接展開,省去了函式棧幀的開銷,執行效率高 2 會進行型別檢查 編譯階段 比巨集更安全 3 inline只在release版本下才生效,即在debug版本下,inline和普通函式一樣,也有棧幀的開闢和回退 4 debug下,...