C和C++对函数的处理方式是不同的.extern "C"是使C++能够调用C写的库文件的一个手段,如果要对编译器提示使用C的方式来处理函数的话,那么就要使用extern "C"来说明。
1
在
C++
中引用
C
语言中的函数和变量,在包含
C
语言头文件(假设为
cExample.h
)时,需进行下列处理:
extern "C"
{
#include "cExample.h"
}
2
在C中引用C++语言中的函数和变量时
,
1) C++
的头文件需添加
extern "C"
2)
在
C
文件,
仅
将
C++
中定义的
extern "C"
函数声明为
extern
类型。
不能直接引用声明了
extern "C"
的该头文件,
比如下列示例代码就是在
C中引用C++函数例子:
//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 "cExample.h" */
extern int add( int x, int y );
int main( int argc, char* argv[] )
{
add( 2, 3 );
return 0;
}