尝试将struct的引用包含在下面
foo.c的
typedef struct Foo {
struct Foo *foo;
} Foo;
如何建模,例如
foo.py
class Foo(Structure):
_fields_ = [('foo', pointer(Foo))]
当然python没有解释,我可以使用c_void_p而不是指针(Foo),并将它的值转换为
F = clib.get_foo()
cast(F.foo, pointer(Foo)) #although i'm not sure if it would work
但是,有没有办法在python类中对该结构进行建模?
答案 0 :(得分:1)
......在ctypes中,我们可以定义
cell
类,并在类语句之后设置_fields_
属性。
如果我们将其应用于当前问题,代码看起来就像:
from ctypes import Structure, POINTER
class Foo(Structure):
pass
Foo._fields_ = [
("foo_ptr", POINTER(Foo)),
]