C static/extern
理解static和extern关键字的作用域与链接属性。 · 难度:入门 · +15XP
static 和 extern
在C语言中,static和extern控制变量和函数的作用域和链接方式。
static
- 局部变量:保持值在函数调用间不变(静态存储期)。
- 全局变量/函数:限制作用域为当前文件(内部链接)。
extern
声明变量或函数在其他文件中定义(外部链接)。
// file1.c
int global_var = 42; // 定义
// file2.c
extern int global_var; // 声明
void func() {
printf("%d
", global_var);
}
| 关键字 | 作用域 | 存储期 |
|---|---|---|
| static(局部) | 函数内 | 程序运行期 |
| static(全局) | 本文件 | 程序运行期 |
| extern | 全局 | 程序运行期 |
练习提示
写一个程序,使用static计数器记录函数调用次数,并用extern访问另一个文件的全局变量。