//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 的效用,宣告變數已經在某個地方定義過。
1 則留言:
我覺得很好啊
張貼留言