使用SWIG 扩展Python 不指定

matrix , 2009/04/11 16:58 , 我的文档 » Python , 评论(0) , 阅读(426) , Via 本站原创
Python 可以用C/C++来写扩展,在已经有C实现代码的时候,用SWIG来自动转换将更加方便。

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

Tags: ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]