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

C語言 static 與 extern 多文件編程實戰指南

     編輯:關於C語言

場景

大型項目多源文件,需控制符號可見性。

static 用法

[c]
// a.c
static int i;           // 僅 a.c 可見
int j;                  // 全項目可見
static void init() {}   // 僅 a.c 可見
void callme() {}        // 全項目可見

void callme() {
    static int sum;     // 僅 callme 內可見,生命周期全程
}

extern 用法

[c]
// b.c
extern int j;           // 引用 a.c 的 j
extern void callme();   // 引用 a.c 的 callme

int main() { callme(); }

C/C++ 混合編程

[cpp]
// A.cpp 調用 a.c
extern "C" {
    int j;
    void callme();
}
int main() { callme(); }

extern "C" 告訴 C++ 編譯器用 C 鏈接規則(不修飾名),避免鏈接錯誤。

static 法則(降低耦合)

  1. 全局變量僅單文件用 → static。
  2. 全局變量僅單函數用 → 改為函數內 static 局部變量。
  3. 設計訪問函數時考慮重入安全(避免靜態變量導致非線程安全)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved