如何在python中使用ctypes创建包含mpfr.h类型的相应结构?

2024-09-28 19:30:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个C API,其中的函数可用于以下C结构:

typedef struct s_t{
    mpq_ptr mpq;
    mpfr_ptr mpfr;
} s_t;

我正在为这个C API构建一个python包装器,所以我需要将这个结构定义为一个类,该类继承自ctypes中的“Structure”类,然后将值赋给\u field。但是,mpq\u ptr、mpfr\u ptr是来自mpfr.h的类型,它们没有对应的ctypes类型。有办法解决这个问题吗?你知道吗

我想在python中获得如下内容:

class S_t(Structure):
    _fields_ = [('mpq', CTYPEFOR(mpq_ptr)),('mpfr', CTYPEFOR(mpfr_ptr))]

这样我就可以在python中创建这样的对象,并将它们传递给相应的C函数,该函数将s\t作为输入参数。你知道吗


Tags: 函数api类型field定义ctypesstructure结构
1条回答
网友
1楼 · 发布于 2024-09-28 19:30:35

我通过跟踪mpfr.h和gmp.h文件中的所有typedef并在python中创建所有必要的结构来解决这个问题:

class Mpz(Structure):
     # define struct manually

class Mpq(Structure):
     # define struct manually

class Mpfr(Structure):
     # define struct manually

相关问题 更多 >