C語言 函式定義時前加static 作用

2021-09-25 01:45:35 字數 648 閱讀 8768

函式中加「static」的含義不是指儲存方式,而是指對函式的作用域僅侷限於本檔案。

使用內部函式的好處是:不同的人編寫不同的函式時,不用擔心自己定義的函式,是否會與其它檔案中的函式同名,因為同名也沒有關係。

根本原因是c語言中同乙個工程中不能有同名函式。

定義靜態函式的好處:

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

靜態函式不能被工程內其他檔案所用。

內聯函式是在函式的前面加「inline」,意思是將這個函式的二進位制**直接插到程式中呼叫它的地方,讓編譯器不用函式名跳轉的方式來實現(原因是這樣跳來跳去比較花費時間)。

這種做法類似於巨集代替。

不好的地方就是如果此函式被呼叫得比較頻繁的話,可能很多地方都要占用空間,而不是跳過去執行只需要乙個地方有這段**就行,所以說這樣做我們是用「空間」來換取了「時間」。

關於內聯函式必須加static的問題:

內聯函式一般都寫成static inline,原因是內聯函式一般要寫在.**件中,進行函式宣告。

這個.**件的原則是不寫函式而只寫函式名,現在寫了函式了,很多.c檔案可能都會包含這個.**件。如果不寫static,編譯的時候就會在linking過程中編譯不過,其實意思就是同乙個工程中不能有相同的函式名。

參考資料:

C 函式前加 的作用

c 中函式前加 是表示此函式是析構函式。析構函式介紹 1.析構函式 destructor 與建構函式相反,當物件脫離其作用域時 例如物件所在的函式已呼叫完畢 系統自動執行析構函式。析構函式往往用來做 清理善後 的工作 例如在建立物件時用new開闢了一片記憶體空間,應在退出前在析構函式中用delete...

呼叫函式時為什麼要在函式名前加「 void 」

我們知道,在定義函式時,加在函式名前的 void 表示該函式沒有返回值。但在呼叫時,在函式名前加 void 的作用又是什麼呢?最明顯的一點就是表示程式並不關心呼叫該函式後的返回值是什麼,比如函式strcpy,我們直接用 strcpy des str,src str 這樣的形式來呼叫。void str...

C 函式前加巨集表示的意思

lresult callback wndproc hwnd hwnd,uint message,wparam wparam,lparam lparam 相信大家都知道這個函式,但分析似乎比平常的函式定義多了callback。現在分析如下 lresult為返回值,實際上是long callback為巨...