2009/04/07

C語言的extern的功能

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 的效用,宣告變數已經在某個地方定義過。

1 則留言:

匿名 提到...

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

4種PDF轉Word的免費方法(pdf to word, pdf to doc, pdf2word, pdf2doc)

本文將介紹4種 將PDF轉Word檔 的方法,分別分析其效能、方便性、精確性等指標。 1. nitropdf提供的線上 Convert PDF to Word (DOC) 這是一個 線上免費PDF轉Word檔 的服務,網址: http://www.pdftoword.com...