C 调用 C++#
在 C 中引用 C++ 语言中的函数和变量时, C++ 的头文件需添加 extern "C"
,但是在 C 语言中不能直接引用声明了 extern "C"
的该头文件(因为 C 语言不支持 extern "C"
关键字,所以会报编译错误),应该仅在 C 文件中用 extern
声明 C++ 中定义的 extern "C"
函数(就是 C++ 中用 extern "C"
声明的函数,在 C 中用 extern
来声明一下,这样 C 就能引用 C++ 的函数了,但是 C 中是不用 extern "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;
}