C++中的extern用法 @ 大世界小世界 :: 隨意窩 Xuite日誌
  • 關鍵字
    1. 沒有新回應!
  • 200601292035C++中的extern用法
    C++有二個基本的原則:

    1.對於變數或函數,可以宣告多次,但只能定義一次
    2.C++中,尋找變數或函數時,是採用Lookup(向上尋找定義或宣告)

    main,cpp
    ~~~~~~~~~~
    int main()
    {
    a=100;
    f();
    return 0;
    }

    f.cpp
    ~~~~~~~~~~
    int a;
    void f()
    {
    ;
    }

    當你用compiling這二個檔案時,會得到a、f符號沒有定義。因為C++向上尋找定義或宣告時,未發現這二個符號,所以我們要把程式改寫如下:

    main.cpp
    ~~~~~~~~~~
    extern int a;//extern一定要加
    exter void f();//extern可加可不加
    int main()
    {
    a=100;
    f();
    return 0;
    }

    f.cpp
    ~~~~~~~~~~
    int a;
    void f()
    {
    ;
    }


    改成這種形式,就可以順利compiling過。
    這兒有幾點注意的事項:
    1.C++ 中只允許變數或函數的定義出現一次。由於變數只有定義規則,沒
       有宣告規則,所以當你鍵入int a;時,代表此變數已經被定義了。我們如
       何宣告一個變數呢?加上extern 變成exern int a;,告訴comipler,此變數a只
       是一個宣告,它的定義在別處。

    2.函數規則分成宣告與定義二種。當一個函數只有傳回值、名稱、傳入 
       值, 沒有大括號{},compiler會把此種形式當成是函數宣告;如果加上了 
       {}, 形成函數定義。所以你要宣告一個函數,只須 鍵入 int f();,extern可
       加 可不加,compiler會自動把它示為函數宣告。






    函數指標特別用法 void (...|日誌首頁|沒有下一則上一篇函數指標特別用法 void (*(papf)[2])(int)釋義...
    回應