藏經閣

一切有為法,如夢幻泡影,如露亦如電,應作如是觀。

extern 這個修飾子可以告訴編譯器其他地方已經宣告了這個變數,也就說這個變數具有外部連結特性(linkage),以範例來看比較容易瞭解
//test2.cpp
int x = 100;
int y = 200;
-------------------------------------------------------------
// test.cpp
// extern 範例
#include
#include "test2.cpp" // 宣告 x 和 y
int a = 10;
extern int x; // 有效範圍; 整個程式
int main(int argc, char* argv[])
{
extern int y; // 有效範圍: 這個函數內
std::cout << a << std::endl; // 10
std::cout << x << std::endl; // 100
std::cout << y << std::endl; // 200
return 0;
}

假如沒有 #include "test2.cpp" ,編譯階段 test2.cpp 是可以過,但是連結時會發生 x 和 y 變數無法解析的錯誤。這就是 extern 的效用,宣告變數已經在某個地方定義過。

如何在Blogger新增隨機文章

Blogger Hack - How to add a Random Post Gadget in Blogger)

 


1 意見

  1. 匿名  

    說真的!!!表達的不太好。

張貼留言