admin 管理员组

文章数量: 1086019


2024年5月25日发(作者:mysql timestampdiff)

extern的用法

"extern" 是 C 和 C++ 语言中的一个关键字,用于声明外部变量和

外部函数。它的主要作用是在一个源文件中引用另一个源文件中定义的变

量或函数。

当一个变量或函数在一些源文件中被使用,而其定义却在另一个源文

件中时,就需要使用 "extern" 关键字来声明该变量或函数。这是因为编

译器默认情况下只会在当前源文件中查找相应的定义,如果找不到,就会

报未定义错误。为了解决这个问题,我们可以使用 "extern" 来告诉编译

器在其他源文件中查找相应的定义。

下面,我们来详细讨论 "extern" 的用法及其在不同上下文中的使用

情况。

1.声明全局变量:

在一个源文件中声明变量,可以在其他源文件中使用该变量的值。通

常,全局变量的声明放在头文件中,而定义则放在相应的源文件中。这样,

其他源文件只需通过包含头文件即可使用全局变量。

```c

// header.h

// source1.c

int globalVariable = 10;

// source2.c

#include "header.h"

// 可以使用 globalVariable 变量

```

2.引用全局变量:

在一个源文件中使用其他源文件中定义的全局变量,需要在使用之前

进行声明。这样,编译器就知道在其他源文件中查找相应的定义。

```c

// source1.c

int globalVariable = 10;

// source2.c

// 可以使用 globalVariable 变量

```

3.声明外部函数:

在一个源文件中声明函数,可以在其他源文件中调用该函数。同样,

函数的声明通常放在头文件中,而定义则放在相应的源文件中。

```c

// header.h

// source1.c

void externalFunctio

//函数定义

}

// source2.c

#include "header.h"

// 可以调用 externalFunction 函数

```

4.引用外部函数:

在一个源文件中调用其他源文件中定义的函数,需要在使用之前进行

声明。这样,编译器就知道在其他源文件中查找相应的定义。

```c

// source1.c

void externalFunctio

//函数定义

}

// source2.c

// 可以调用 externalFunction 函数

```

需要注意的是,使用 "extern" 声明的变量和函数可以在整个程序中

被访问。所以,在一个源文件中声明的外部变量或函数,可以在其他所有

源文件中使用。而且,外部变量和函数的定义可以在任何一个文件中,只

要它们被正确地声明即可。这是通过包含相应的头文件来实现的。

另外,有时候,我们可能会将 "extern" 关键字与 "static" 关键字

一起使用。这时,它的意义有所不同。在全局变量或函数的定义中使用

"static" 关键字,可以使其具有内部链接性,即只能在当前源文件中访

问。而使用 "extern" 关键字,则可以在其他源文件中引用这些具有静态

链接性的全局变量或函数。

总结起来,"extern" 关键字的主要用途是在一个源文件中引用另一

个源文件中定义的变量或函数。它使得变量或函数可以在整个程序中被访

问,而不仅仅是在当前源文件中。通过合理使用 "extern" 关键字,我们

可以更好地组织和管理程序的各个模块,提高代码的可读性和可维护性。


本文标签: 源文件 函数 定义 声明 使用