首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C/C++ 變量聲明與定義:extern、聲明定義分離與編譯單元

     編輯:關於C++

聲明 vs 定義

  • 聲明:告知編譯器標識符的類型、名稱、參數列表,不分配存儲空間。
  • 定義:在聲明基礎上分配存儲空間,可能初始化。

例子:

int a;           // 定義(分配空間,默認初始化 0)
extern int b;    // 僅聲明,b 定義在別處
extern int c = 5;// 定義(extern 配合初始化視為定義)

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; // 多文件包含無重複定義錯誤
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved