.c文件中的extern
时间: 2024-04-24 19:26:47 浏览: 17
extern是一种关键字,用于在C语言中声明一个变量或函数是在其他源文件中定义的。当在一个源文件中使用extern声明一个变量或函数时,它告诉编译器该变量或函数的定义将在其他源文件中找到。
例如,如果在一个.c文件中使用extern声明一个变量,那么该变量的定义将在其他地方的源文件中找到。这样做可以使多个源文件共享同一个变量。
另外,extern关键字也可以用于声明全局变量或函数,以便在其他源文件中使用。这样可以避免在每个要使用的源文件中重复定义相同的全局变量或函数。
总而言之,extern关键字在C语言中用于声明一个变量或函数的定义将在其他源文件中找到。它有助于实现模块化编程和代码重用。
相关问题
在.h文件中进行extern对函数的修饰
在.h文件中使用`extern`关键字来修饰函数的声明是可行的,它可以用于在多个源文件之间共享函数的声明。
通常,.h文件用于存放函数的声明和结构体、枚举等的定义。当多个源文件需要使用相同的函数时,可以在.h文件中声明这些函数,并在需要使用它们的源文件中包含该.h文件。
当在.h文件中声明函数时,使用`extern`关键字可以显式地说明该函数是在其他源文件中定义的,而不是在当前源文件中定义。这样,在包含该.h文件的源文件中,就可以使用该函数而不会导致重复定义错误。
例如,假设有一个functions.h文件,其中声明了一个函数:
functions.h:
```c
extern void sharedFunction(); // 声明一个在其他文件中定义的函数
```
然后,在其他源文件中定义该函数:
file1.c:
```c
#include "functions.h"
void sharedFunction() {
// 函数定义
}
```
file2.c:
```c
#include "functions.h"
int main() {
sharedFunction(); // 调用共享的函数
return 0;
}
```
通过在functions.h中使用`extern`关键字声明函数,并在其他源文件中定义该函数,可以在file2.c中使用`extern`关键字来引用共享的函数。
总而言之,虽然在.h文件中使用`extern`关键字不是必需的,但它可以显式地声明函数是在其他源文件中定义的,从而帮助确保在多个源文件中共享函数时不会引起重复定义错误。这样可以提高代码的可读性和可维护性。
c语言中extern 如何定义到头文件中被其他.c文件使用
在 C 语言中,你可以将 `extern` 声明放在头文件中,然后在需要使用该变量或函数的源文件中包含该头文件即可。
例如,在头文件 `myheader.h` 中声明一个全局变量:
```c
extern int my_global_variable;
```
然后在 `source1.c` 和 `source2.c` 中分别定义和使用该变量:
```c
// source1.c
#include "myheader.h"
int my_global_variable = 42;
// source2.c
#include "myheader.h"
void foo() {
int x = my_global_variable + 1;
// ...
}
```
在上面的例子中,`my_global_variable` 被定义在 `source1.c` 中,并在 `myheader.h` 中声明为 `extern`。在 `source2.c` 中,我们可以通过 `#include "myheader.h"` 来引用该变量,并在函数 `foo()` 中使用它。
注意,为了避免重复定义,你需要在一个源文件中定义该变量,而其他源文件中只能声明为 `extern`。另外,你也需要确保头文件中只包含变量或函数的声明,而不是定义,否则可能会导致重复定义的编译错误。