您的位置:

全方位解析C语言中的extern关键字

一、定义extern关键字

C语言中的extern关键字可以用来声明一个由其他源文件定义的变量、函数或者常量,以便在当前文件中使用。

二、声明extern关键字

在使用extern关键字的时候,需要在当前文件中进行声明,告诉编译器此变量、函数或常量已在其他源文件中声明或定义过。

// 外部文件定义变量
int count;

// 当前文件声明extern变量
extern int count;

三、extern关键字与全局变量

在C语言中,全局变量默认是拥有extern属性的,可以被其他文件访问。因此,只需要在需要访问该变量的文件中声明一下即可。

// file1.c 文件中定义全局变量
int count = 0;

// file2.c 文件中访问该全局变量
extern int count;
printf("count value is %d", count);

四、extern关键字与函数

在C语言中,外部函数也需要使用extern关键字进行声明,以便在当前文件中调用该函数。

// 外部文件定义函数
void func();

// 当前文件声明extern函数
extern void func();

// 在当前文件中使用该函数
func();

五、extern关键字与常量

常量也可以使用extern关键字进行声明。一般在头文件中定义常量,在其他文件中使用时进行声明。

// const.h 文件中定义常量
extern const int count;

// file2.c 文件中声明该常量
#include "const.h"

六、extern关键字的注意点

在使用extern关键字时需要注意以下几点:

1、在定义变量或函数时,如果没有指定extern关键字,则默认为extern属性。

2、extern关键字只能用于对变量、常量或函数的声明,不可以用于定义。

3、在同一个文件中不要使用extern关键字。

七、完整代码示例

// const.h
extern const int count;

// file1.c
#include "const.h"
int count = 0;

// file2.c
#include "const.h"
#include 
void func()
{
   printf("This is a external function.");
}

int main()
{
   printf("count value is %d\n", count);
   func();
   return 0;
}