深入探索Python扩展与Jython集成
1. Pyrex中的数据结构与外部声明
在Pyrex里,可以使用Python风格的语法来定义struct、union和enum。例如,定义一个struct的示例如下:
cdef struct Ure: int x, y float z之后引用这个新类型时,直接使用类型名,如Ure,不要在声明类型的cdef之外使用struct、union和enum这些关键字。
若要与外部C代码交互,可以使用cdef extern来声明变量,其效果和C语言中的extern一样。更常见的情况是,你想使用的某个库的C声明在一个.h的C头文件中。为了确保Pyrex生成的C代码包含这个头文件,使用如下形式的cdef:
cdef external from "someheader.h": # 缩进的cdef风格声明 # 这里不需要重复cdef关键字你只需声明在Pyrex代码中要使用