C语言学习及应用笔记之六:C语言extern关键字及其使用
在C語言中,修飾符extern用在變量或者函數的聲明前,用來以標識變量或者函數的定義在別的文件中,提示編譯器遇到此變量或者函數時,在其它文件中尋找其定義。extern關鍵字的用法有幾種,我們下面對其進行說明。
1、extern修飾變量的聲明
extern關鍵字可以用來修飾變量,表示該變量在別的文件中已有聲明。例如:我們在文件file1.c中聲明了變量int var,然后我們又需要再file2.c中使用該變量,則可在文件file2.c中聲明extern int var,就可在文件file2.c中使用該變量了。
佷顯然使用extern關鍵字修飾的變量都是全局變量,因為在其它文件中引用局部變量是不會有意義的,也超出了局部變量的作用域。
說到作用域,我們需要說明,盡管使用extern關鍵字修飾的變量,其原本都是全局變量,但如果extern int var聲明處于某一函數體內,那么其作用域就在函數體內。這其實與一般變量的作用域是相同的。
2、extern修飾函數聲明
從本質上來講,使用extern關鍵字函數和變量沒有什么區別。如果我們在文件file1.c中定義有函數void fun(int var),而我們在文件file2.c中想要應用,那么我們可以在file2.c中聲明extern void fun(int var),而使用則與在file1.c中并無區別。
當然,應用其它文件中的函數,更常用的方式是引用相應的頭文件。那么使用extern關鍵字與直接引用頭文件有什么不同呢?首先來講,引用頭文件是一種預處理,而extern聲明則應該是鏈接層面的實現。其次,對于大批量引用自然是使用頭文件比較方便,但如果我們只是使用個別函數,當然還是使用extern更為直接。
3、extern用來進行鏈接指定
extern用來進行鏈接指定一般用于混合編程,如果我們要在C++程序中調用C代碼,則我們就需要使用extern “C”來聲明,這樣連接器就會使用C的規范來鏈接這部分代碼。
4、 extern與static
從某種意義上來說,extern關鍵字與static關鍵字是相反的,extern關鍵字是聲明想要調用的外部變量和函數。而static關鍵字正好聲明為自己使用。當然使用static關鍵字聲明一個變量時,同時也定義了該變量。而extern聲明一個變量時,僅是聲明,因為該變量早已在其他地方定義。
歡迎關注:
總結
以上是生活随笔為你收集整理的C语言学习及应用笔记之六:C语言extern关键字及其使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php7安装xhprof,PHP 7.1
- 下一篇: WinSock I/O 模型 -- Se