例子:
int a; // 定義(分配空間,默認初始化 0) extern int b; // 僅聲明,b 定義在別處 extern int c = 5;// 定義(extern 配合初始化視為定義)
用於跨文件共享變量/函數:
// file1.cpp
int global_x = 10; // 定義
void func(); // 聲明
// file2.cpp
extern int global_x; // 聲明,使用 file1 定義的 global_x
extern void func(); // 聲明函數
int main() { func(); }
若無 extern,多文件包含同一頭文件會導致重複定義錯誤。
// header.h inline int shared_counter = 0; // 多文件包含無重複定義錯誤