//cpp.h
- #ifndef __cpp_h__
- #define __cpp_h__
- class class1 {
- class1();
- ~class1();
- public:
- int I;
- int J;
- int getI(void);
- };
- #endif
- //cpp.cpp
- #include "cpp.h"
- #include "c.h"
- class1::class1()
- {}
- class1::~class1()
- {}
- int class1::getI(void)
- {
- return I++;
- }
- extern "C"
- int get_class1_I(struct1 * p)
- {
- class1 * pClass1 = (class1 *)p;
- return pClass1->getI();
- }
//c.h
- #ifndef __c_h__
- #define __c_h__
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef struct {
- int I;
- int J;
- }struct1;
- #ifdef __cplusplus
- }
- #endif
- #endif
//c.c
- #include "c.h"
- #include <stdio.h>
- extern int get_class1_I(void * p);
- struct1 s;
- int main(void)
- {
- printf("c: %d\n", get_class1_I(&s));
- printf("c: %d\n", get_class1_I(&s));
- return 0;
- }
说明:
C++: cpp.h cpp.cpp
C: c.h c.c
C调用C++
gcc -c cpp.cpp -o cpp.o
gcc -c c.c -o c.o
gcc -o man cpp.o c.p -lstdc++
本文出自 “混迹于挨踢的行业” 博客,请务必保留此出处http://zhaiku.blog.51cto.com/2489043/1160342