⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

C static/extern 关键字

深入理解 static 和 extern 对变量和函数作用域及链接属性的影响。 · 难度:入门 · +15XP

存储类说明符

在C语言中,staticextern 是存储类说明符,它们控制变量或函数的可见性(作用域)和生命周期。

extern 关键字

extern 用于声明一个变量或函数是在其他文件中定义的,告诉编译器该符号在链接时解析。常用于在多个源文件之间共享全局变量。

// file1.c
int global_var = 42;  // 定义全局变量

// file2.c extern int global_var; // 声明,引用 file1.c 中的变量 void func() { global_var = 100; // 修改 file1.c 中的变量 }

注意:变量只能定义一次,但可以多次声明。函数默认就是 extern 的,所以通常省略。

static 关键字

static 有两种主要用法:

// file1.c
static int hidden_var = 0;  // 仅 file1.c 可见

void counter() { static int count = 0; // 只初始化一次 count++; printf("%d ", count); }

表格:static vs extern

关键字使用位置效果
extern变量/函数声明引用其他文件的定义
static全局变量/函数限制在当前文件
static局部变量延长生命周期,保持值

常见错误

练习提示

在右侧编辑器中,创建两个源文件 a.cb.c。在 a.c 中定义一个全局变量 int value = 10,以及一个 static 函数 static void helper()。在 b.c 中使用 extern 访问 value,并尝试调用 helper(),观察编译结果。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 105 篇
0 完成
🔥 0