1. C ++ invoke C :
// cfun.c
#include <stdio.h>
void cfunc(num1, num2, res)
int num1, num2, *res;
{
printf("func: a = %d b = %d ptr c = %x\n",num1,num2,res);
*res=num1/num2;
printf("func: res = %d\n",*res);
}
//cppmain.cpp
extern "C" void cfunc(int n, int m, int *p);
#include <iostream.h>
void main()
{ int a,b,c;
a=8;
b=2;
cout << "main: a = "<<a<<" b = "<<b<<" ptr c = "<<&c<< endl;
cfunc(a,b,&c);
cout << "main: res = "<<c<<endl;
}
2. C invoke C++:
// cmain.c
extern void cpfunc(int a, int b, int *c);
#include <stdio.h>
void main()
{ int a,b,c;
a=8;
b=2;
printf("main: a = %d b = %d ptr c = %x\n",a,b,&c);
cpfunc(a,b,&c);
printf("main: res = %d\n",c);
}
//cppfunc.cpp
#include <iostream.h>
extern "C" void cpfunc(int num1,int num2,int *res)
{
cout << "func: a = "<<num1<<" b = "<<num2<<" ptr c ="<<res<<endl;
*res=num1/num2;
cout << "func: res = "<<res<<endl;
}