Python 可以用C/C++来写扩展,在已经有C实现代码的时候,用SWIG来自动转换将更加方便。
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
calc.c:
何为SWIG,SWIG 是Simplified Wrapper and Interface Generator 的缩写详细的信息可以参考 http://www.swig.org。
看一个简单例子有如下calc.h 和calc.c,一共实现了3个加法函数。我们现在要用将这三个函数实现为Python 的扩展。
calc.h
#ifndef __CALC_H
#define __CALC_H
typedef struct {
int j;
int k;
} obj;
int add1(int a, int b);
void add2(int a, int b, int *c);
void add3(obj a, obj *b, obj *c);
#endif
calc.c:
#include "calc.h"
int add1(int a, int b) {
return a + b;
}
void add2(int a, int b, int *c) {
*c = a + b;
}
void add3(obj a, obj *b, obj *c) {
c->j = a.j + b->j;
c->k = a.k + b->k;
}





