在C语言中,extern
是一个关键字,用于声明外部变量和函数。
在C语言中,如果要在一个源文件中使用另一个源文件中定义的全局变量或函数,就需要使用extern
关键字来声明这些变量或函数。extern
关键字告诉编译器,这些变量或函数是在其他源文件中定义的,而不是当前源文件中定义的。
extern
的用法分为两种情况:
声明全局变量:如果要在一个源文件中使用另一个源文件中定义的全局变量,就需要在使用的源文件中使用extern
关键字来声明这个全局变量。例如,如果在源文件A中定义了一个全局变量int a;
,在源文件B中要使用这个全局变量,就需要在源文件B中使用extern
关键字进行声明:extern int a;
。这样,编译器就知道在链接时要从其他源文件中找到这个全局变量的定义。
声明外部函数:如果要在一个源文件中调用另一个源文件中定义的函数,就需要在使用的源文件中使用extern
关键字来声明这个函数。例如,如果在源文件A中定义了一个函数void func();
,在源文件B中要调用这个函数,就需要在源文件B中使用extern
关键字进行声明:extern void func();
。这样,编译器就知道在链接时要从其他源文件中找到这个函数的定义。
需要注意的是,extern
关键字只是一个声明,不是定义。它只是告诉编译器某个变量或函数在其他源文件中有定义,而不是在当前源文件中定义。因此,extern
关键字不能初始化变量,也不能给函数提供函数体。变量的定义和函数的定义必须在其他源文件中进行。
总结来说,extern
关键字的作用是告诉编译器某个变量或函数在其他源文件中有定义,以便在编译和链接时正确地引用这些变量或函数。