一、定义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" #includevoid func() { printf("This is a external function."); } int main() { printf("count value is %d\n", count); func(); return 0; }