3 回答

TA貢獻1817條經驗 獲得超6個贊
static函數(shù)與普通函數(shù)的區(qū)別:
用static修飾的函數(shù),本限定在本源碼文件中,不能被本源碼文件以外的代碼文件調用。而普通的函數(shù),默認是extern的,也就是說,可以被其它代碼文件調用該函數(shù)。
在函數(shù)的返回類型前加上關鍵字static,函數(shù)就被定義成為靜態(tài)函數(shù)。普通 函數(shù)的定義和聲明默認情況下是extern的,但靜態(tài)函數(shù)只是在聲明他的文件當中可見,不能被其他文件所用。因此定義靜態(tài)函數(shù)有以下好處:
<1> 其他文件中可以定義相同名字的函數(shù),不會發(fā)生沖突。
<2> 靜態(tài)函數(shù)不能被其他文件所用。

TA貢獻1828條經驗 獲得超13個贊
static函數(shù)與普通函數(shù)有什么區(qū)別:static函數(shù)在內存中只有一份,普通函數(shù)在每個被調用中維持一份拷貝。
靜態(tài)函數(shù)
C語言中使用靜態(tài)函數(shù)的好處:
靜態(tài)函數(shù)會被自動分配在一個一直使用的存儲區(qū),直到退出應用程序實例,避免了調用函數(shù)時壓棧出棧,速度快很多。
關鍵字“static”,譯成中文就是“靜態(tài)的”,所以內部函數(shù)又稱靜態(tài)函數(shù)。但此處“static”的含義不是指存儲方式,而是指對函數(shù)的作用域僅局限于本文件。 使用內部函數(shù)的好處是:不同的人編寫不同的函數(shù)時,不用擔心自己定義的函數(shù),是否會與其它文件中的函數(shù)同名,因為同名也沒有關系。
添加回答
舉報