c语言extern和static的作用
时间: 2024-05-11 15:17:49 浏览: 138
在C语言中,extern和static是两个关键字,它们的作用如下:
1. extern关键字
extern用于声明一个变量或函数是在其他文件中定义的,也就是说,它告诉编译器该变量或函数并没有在本文件中定义,需要在其他文件中寻找定义。在使用extern关键字时,不会为该变量或函数分配内存空间。
示例:
```c
// 文件a.c
extern int num; // 声明变量num在其他文件中定义
// 文件b.c
int num = 10; // 定义变量num并赋值为10
```
2. static关键字
static可以用于变量和函数,其作用如下:
- 对于变量,static可以使变量的作用域限定在当前文件中,即该变量只能在当前文件中被访问。此外,static还可以使变量的生命周期变为整个程序运行期间,即该变量在程序启动时被创建,直到程序结束时才被销毁。
- 对于函数,static可以使函数的作用域限定在当前文件中,即该函数只能在当前文件中被调用。此外,static还可以使函数不能被其他文件调用。
示例:
```c
// 文件a.c
static int num = 10; // 声明静态变量num,作用域仅限于当前文件
static void test() { // 声明静态函数test,作用域仅限于当前文件
printf("Hello World!");
}
// 文件b.c
int main() {
printf("%d", num); // 编译错误,变量num作用域仅限于文件a.c
test(); // 编译错误,函数test作用域仅限于文件a.c
return 0;
}
```
阅读全文