extern
- 在c语言中,修饰符extern用在变量或者函数声明前,用来说明“次变量/函数是在别处定义的,要在此处引用(使用)”。
- extern声明的位置对其作用域也有关系。main函数中进行extern声明(其它声明也是如此),只能在main函数中调用,其它函数中不能调用。
- 疑问:要调用其他文件中的函数和变量,只需包含对方的头文件即可,为什么还要加上extern声明呢,因为extern声明会加速程序的编译过程,节省时间。
- 在C++中,还有另外一种作用,用于指示C或者C++函数的调用规范。比如C++中需要调用C的库函数,就要在C++程序中用
extern 要使用的c库函数
。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同,用此来解决名字匹配的问题。