C语言与C++语言函数互相调用

C 语言调用C++语言函数使用方法

1、首先cpp文件中需要在C文件中调用的函数声明为:extern“C”,注:该声明在C语言中无法识别。

例:extern "C" void mytime_test();

void mytime_test()

{

              Date MyDate = Date();

              MyDate.add_day(3);

              cout<<"Date is "<

              cout<<"Month is "<

              cout<<"Year is "<

}

上例中,mytime_test()函数调用了C++中定义的类,此处将该函数前加extern C进行声明,使得在C中可调用。

2、将包含该函数的CPP文件采用C++编译器编译成动态链接库xxx.so文件,并将其添加到标准的库文件路径中。

例:g++ -shared –fpic ClassTest.cpp -s -o libclass.so

        cp libclass.so /lib64/

3、c文件中采用extern 声明为外部函数,并且编译时,加上包含该函数的C++库文件。

例:extern void mytime_test();

              gcc class.c –o classapp lclass

生成的可执行文件classapp既可以在包含libclass.so的环境下运行。

 

C++语言调用C语言函数使用方法

1、首先将包含C++中需要调用的C函数的.c文件编译成库文件。并将生成的添加到标准困文件路径中。

例:gcc shared fpic o libtest.so testlib.c

cp libtest.so /lib64

2、在调用C函数的cpp文件中,采用extern C{被函数}的形式进行声明。

例:#include

using namespace std;

extern "C"

{   

void hello();

}

3、编译cpp文件。

例:g++ main.cpp o main -ltest

生成的可执行文件main既可以在包含libtest.so的环境下运行。

你可能感兴趣的:(c,c++,linux)