C 调用 C++

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;
}