1. 程式人生 > >C語言中全域性變數的定義與呼叫

C語言中全域性變數的定義與呼叫

1. 譚浩強 書中對‘全域性變數’的定義

    在函式內定義的變數是區域性變數,而在函式外定義的變數叫做外部變數,外部變數是全域性變數。全域性變數可以為本檔案中其他函式所共用它的有效範圍從定義變數的位置開始到本原始檔結束。

    建立全域性變數的作用是增加了函式間資料聯絡的渠道。

2.  譚浩強 書中對‘全域性變數’的宣告

    用extern宣告:

       如果外部變數不在檔案的開頭定義,其有效的作用範圍只能從定義點到檔案結束。如果在定義點之前的函式想引用該外部變數,則應該在應用之前用關鍵字extern對該變數作‘外部變數宣告’。表示該變數是一個已經定義了的外部變數。有了此宣告,就可以從宣告處起,合法的呼叫該外部變數。

int  A=13, B=-8;

....

main()

{

    extern int A,B;//也可以寫成extern A,B;

    ....

    用static宣告:

        有時在程式中希望某些外部變數只限於被本檔案引用,而不能被其他檔案引用。這時就可以在定義外部變數時在其前面加一個static宣告。此時的外部變數也成為靜態全域性變數。

static int A;

3. 需要注意的地方

   外部變數的定義和宣告是不同的。外部變數的定義只能有一次,它的位置在所有函式之外,而統一檔案中的外部變數的宣告可以有多次,它的位置可以在函式之內,也可以在函式之外。系統根據外部變數的定義,而不是宣告,分配儲存單元。對外部變數的初始化,只能在定義

時進行,而不能在宣告中進行