Python与Jython扩展及嵌入技术详解
1. Pyrex扩展经典Python
在Python编程中,Pyrex为我们提供了强大的扩展能力。
1.1 结构体、联合体和枚举的定义
可以使用Python风格的语法来定义结构体、联合体和枚举。例如,定义一个名为Ure的结构体:
cdef struct Ure: int x, y float z之后,仅通过名称(如Ure)来引用这个新类型,不要在声明类型的cdef之外使用struct、union和enum关键字。
1.2 外部声明
为了与外部C代码进行交互,可以使用cdef extern来声明变量,其效果与C语言中的extern相同。更常见的情况是,你想使用的某个库的C声明会放在一个.h的C头文件中。为了确保Pyrex生成的C代码包含该头文件,可以使用以下形式的cdef:
cdef external from "someheader.h": # 这里是缩进的cdef风格声明,无需重复cdef关键字<