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