extern关键字
用于在其他地方声明一个变量或函数
目的:告诉编译器声明的变量或函数是在另一个文件中定义
作用:
- 用来声明全局变量或函数。比如有一个全局变量或函数在多个文件中使用,那可以在其中一个主要的文件中进行定义,在其他文件中使用时,在声明处,加个extern关键字,其他文件中都可以访问这一个全局变量或函数。
- 直接链接到文件中定义该变量的地方,并未在当前文件中创建实例,因此,想在另外的文件中使用本文件中extern 声明的变量或函数,也就不会链接到定义的地方,会报错,未定义的引用**
- 避免重复定义:大型项目中,可能需要在多个文件中使用相同的全局变量或函数,使用extern 可以避免在每个文件中定义相同功能的变量或函数。
- 用在C语言的编译,C语言中实现多文件编译的关键,允许在其他文件中定义,不是在当前文件中。
- extern “C” 用于告诉编译器这个函数应该以C语言的方式进行名称修饰(不进行改名),便于链接,而不是C++的方式,会进行名称修饰(编译后函数名会发生变化)。如果都在C++中编译,无法直接连接与C语言库或代码进行链接。即通常用于C /C++混合编程,确保C++代码可以正确调用C语言库中函数。