本文主要以[Learning Cython Programming]一书中的案列和我自己编写的简单程序来学习Cython。
一:Python调用C函数
mycode.c文件
#include <stdio.h>
int myfunc (int x, int y)
{
printf ("look we are within your c code!!\n");
return x + y;
}
mycode.h文件:
#ifndef __MYCODE_H__
#define __MYCODE_H__
extern int myfunc (int, int);
#endif //__MYCODE_H__
我们将通过Python调用myfunc函数。
mycodepy.pyx文件:
cdef extern from "mycode.h":
cdef int myfunc (int, int)
def callCfunc ():
print myfunc (1,2)
cdef是Cython的关键字,说明要引用外部的声明。我们创建一个callCfunc函数是有必要的,这是对C中函数的包装,Cython会处理好Python和C之间的类型转换。
注意当cdef开始一个块的时候,下面所有的类型默认都已添加cdef关键字。我们还可以传递参数给callCFunc,下面是我修改后的mycodepy.pyx文件:
cdef extern from "mycode.h":
int myfunc (int, int)
def callCfunc ():
print

本文介绍了如何使用Cython进行C函数的调用和Python中使用C的结构体。通过`mycode.c`、`mycodepy.pyx`文件展示Cython的关键字`cdef`在包装C函数中的应用,以及如何处理Python和C之间的类型转换。同时,文章讲解了在Cython中定义C语言的结构体和枚举、typedef及函数指针的方法。
最低0.47元/天 解锁文章
34

被折叠的 条评论
为什么被折叠?



