extern关键字:
extern可以置于变量或者函数前,以表示函数或者变量的定义在别的文件中,提示编译器遇到此变量和函数时在其他模板中寻找其定义。另外,extern也可以用来进行链接指定
eg:
① :
/*c语言头文件:cExample.h*/
#ifndefC_EXAMPLE_H
#defineC_EXAMPLE_H
externint add(int x,int y);
#endif
/*c语言实现文件:cExample.c*/
#include"cExample.h"
int add(int x, int y )
{
return (x+ y);
}
//c++实现文件,调用add:cppFile.cpp
#include"iostream"
usingnamespace std;
extern"C"
{
#include"cExample.h"
}
intmain(int argc, char* argv[])
{
cout<<add(2,3)<<endl;
return 0;
}
② :
//C++头文件 cppExample.h
#ifndef CPP_EXAMPLE_H
#define CPP_EXAMPLE_H
extern "C" int add( int x, int y );
#endif
//C++实现文件 cppExample.cpp
#include "cppExample.h"
int add( int x, int y )
{
return x + y;
}
/* C实现文件 cFile.c*/
/* 这样会编译出错:#include "cppExample.h" */
#include<stdio.h>
extern int add( int x, int y );
int main( int argc, char* argv[] )
{
printf("%d\n",add( 2, 3 ));
return 0;
}