`extern`關鍵字在C語言中主要用於聲明一個變數或函式是在其他地方定義的,當前位置需要使用這個已經定義的變數或函式。使用`extern`關鍵字可以擴展全局變數的作用域,使得在該全局變數定義之前想要使用該變數的函式也能夠正確地引用它。
具體來說,`extern`的作用域規則如下:
全局變數的作用域:當一個變數在函式的外部定義時,它被稱為外部變數。這種變數的作用域從定義點開始,直到包含該定義的源檔案的末尾。
`extern`的使用:
如果外部變數不在檔案的開頭定義,其有效作用範圍只限於定義處到檔案結束。為了在定義點之前的函式中引用此變數,可以使用`extern`聲明。這樣,該變數的有效作用範圍就可以從`extern`聲明處開始,直到本源檔案結束。
在其他函式調用外部變數之前,首先將其聲明為`extern`變數,表明該變數是一個已知定義的外部變數。這樣,此變數的有效作用範圍就可以從`extern`聲明處開始到本源檔案結束。
多檔案程式中的使用:在多檔案程式中,可以在任一個檔案中定義外部變數,而在另一個檔案中使用`extern`對該變數進行聲明。這樣可以確保在多個源檔案中都可以合法地引用同一個外部變數。
注意事項:當使用`extern`聲明外部變數時,類型名可以省略,也可以寫。例如,`extern int A,B`等價於`extern A,B`。
綜上所述,`extern`關鍵字在C語言中主要用於聲明一個變數或函式是在其他地方定義的,並且可以擴展全局變數的作用域,使得在該全局變數定義之前的函式也能夠正確地引用它。