extern 函数的用法
时间: 2023-10-02 20:10:49 浏览: 132
extern关键字用于声明一个全局变量或函数的外部链接性,表示该变量或函数在其他文件中定义。它通常用于在一个源文件中引用另一个源文件中定义的全局变量或函数。
在C语言中,如果一个变量或函数被声明为extern,它的定义应该在其他源文件中。编译器在编译时会检查extern声明的变量或函数是否在其他文件中定义,如果找不到定义,编译器会给出链接错误。
例如,假设你有两个源文件a.c和b.c,其中a.c中定义了一个全局变量x,你想在b.c中使用它。你可以在b.c中使用extern关键字声明x的存在,如下所示:
// a.c
int x = 10;
// b.c
extern int x;
int main() {
printf("%d", x); // 输出10
return 0;
}
在b.c中,使用extern int x;声明了变量x的存在,然后在main函数中可以直接使用变量x。
同样的,extern也可以用于函数的声明。如果你想在一个源文件中调用另一个源文件中定义的函数,可以在调用之前使用extern关键字进行函数声明。
总结来说,extern关键字的作用是告诉编译器某个变量或函数在其他文件中定义,以便正确链接。
相关问题
extern int用法
`extern` 是一个 C 语言的关键字,用于声明一个变量或函数是在其他文件中定义的。它的作用是告诉编译器这个变量或函数的定义在其他文件中,而不是在当前文件中。
当我们在一个文件中使用另一个文件中定义的变量或函数时,编译器需要知道这个变量或函数的类型和名称。如果没有 `extern` 关键字,编译器会认为这个变量或函数是当前文件中定义的,而不是其他文件中定义的,编译器在编译时就会报错。
例如,我们在一个 C 语言程序中使用了一个在另一个文件中定义的全局变量 `count`,需要在当前文件中声明该变量,以便编译器知道该变量的类型和名称。可以使用 `extern` 关键字来声明:
```c
extern int count;
```
这样编译器就会知道该变量是在其他文件中定义的,并且可以正确地编译程序。需要注意的是,`extern` 只是告诉编译器该变量或函数的定义在其他文件中,不会分配内存空间,所以该变量或函数必须在其他文件中定义才能正常使用。
extern关键字用法
extern关键字有以下用法:
1. 声明变量的存储类型为外部,表示该变量并非在本文件中定义,而是在其他文件中定义。
例:extern int i;
2. 声明函数的存储类型为外部,表示该函数并非在本文件中定义,而是在其他文件中定义。
例:extern int fun();
3. 在C++中,extern也可以用于在另一个文件中声明全局变量,以便在当前文件中使用,不必在当前文件中重新定义。
例:extern int i;
4. 在C++中,extern也可以用于声明全局变量或函数,以便在嵌套的代码块中使用。
例:extern int i;
if (true) {
extern int j;
int k = j + 1;
}
注意:extern关键字只是对声明的变量或函数进行说明,而不是定义,因此不需要分配存储空间。定义变量或函数时不需要使用extern关键字。
阅读全文