學單片機C語言一定要熟悉關鍵字的用法,本文介紹一下關鍵字extern的用法。
1、extern的定義是:extern可以置于變量或者函數前,以标示變量或者函數的定義在别的檔案中,提示編譯器遇到此變量和函數時在其他子產品中尋找其定義。此外extern也可用來進行連結指定。
2、extern的作用:
第一:當extern不與"C"在一起修飾變量或函數時,如在頭檔案中:
extern int g_Int;
它的作用就是聲明函數或全局變量的作用範圍的關鍵字,其聲明的函數和變量可以在本子產品活其他子產品中使用,記住它是一個聲明不是定義!也就是說B子產品(編譯單元)要是引用子產品(編譯單元)A中定義的全局變量或函數時,它隻要包含A子產品的頭檔案即可,在編譯階段,子產品B雖然找不到該函數或變量,但它不會報錯,它會在連接配接時從子產品A生成的目标代碼中找到此函數。
extern的作用可簡單地概括如下:你在*.c檔案中聲明了一個全局的變量,這個全局的變量如果要被引用,就放在*.h中并用extern來聲明。
第二:當它與"C"一起連用時,如:
extern "C" void fun(int a, int b);
則告訴編譯器在編譯fun這個函數名時按着C的規則去翻譯相應的函數名而不是C++的。
3、在*.h檔案中extern聲明的變量類型一定要跟*.c檔案中聲明的變量類型一緻,否則會出差。如
在*.c檔案中定義了
char a[8];
則在*.h檔案中也應該這樣定義:
extern char a[];
而不能使用其它類型格式。