extern总结
1、extern声明外部变量已经被定义,可以应用
//file1.c:
int x=1;
int f(){do something here}
//file2.c:
extern int x;
int f();
void g(){x=f();}
注意extern int x没有开辟空间,只是说这个变量已经在别的文件或本文件还没读到的地方定义了,告诉编译器可以通过。
2、extern "C"
主要作用就是c、c++混编的时候防止编译器链接的时候发生错误。
extern "C"{
#include "XXx.h"
}
如果使用的是很早以前老员工编写的c程序,已经编译成动态或静态库的时候,防止你的c++程序在链接时候出现错误,把这个引用头文件或函数编译器识别为c文件。
如果只是用一个函数,也可以这样使用。
extern "C" char* strcpy(char*,const char*);