// file1.c
void public_api(void) { /* 默認外部連接 */ }
// file2.c
extern void public_api(void); // 聲明,非定義
void caller(void) { public_api(); }
extern,跨文件可見。extern 聲明,源文件放定義。static int g 內部,extern int g 外部聲明。b?a:b; } // 內部函數
extern void character_int_out_put(void); // 外部聲明
int main(void) {
character_int_out_put(); // 調用外部函數
return 0;
}
static 隱藏實現細節,減少符號衝突。extern 聲明(函數可省略 extern)。extern,傾向單例模式或靜態局部變量。static(函數/變量)控制連接可見性,extern 聲明外部符號引用。二者構成 C 語言模塊化編程的基石:隱藏內部、暴露接口、分離編譯。