天天看點

單片機C語言關鍵字之extern

        學單片機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[];

而不能使用其它類型格式。