4

我有一个包含结构的 C 程序

struct S{
           int x;
           struct timeval t;
 };

和一个函数

int func(struct S s1, struct S s2)

我需要从我的 python 程序中调用这个函数。我正在使用 ctypes。Python 上的并行结构

import ctypes
from ctypes import *
class S(Structure):
        _fields_ = [("x",c_int),
                     ("t", ?)]

现在,我的问题是我将在 ? place 以及与之相关的任何依赖项。提前致谢。

4

2 回答 2

6

struct timeval在您平台的 C 包含文件(互联网建议)中找到 的定义sys/time.h,然后将其转码为 ctypes 结构。

在我的平台上struct timeval

struct timeval {
  long tv_sec;
  long tv_usec;
};

(我想无论如何这是标准),所以

class timeval(Structure):
    _fields_ = [("tv_sec", c_long), ("tv_usec", c_long)]

class S(Structure):
    _fields_ = [("x",c_int), ("t", timeval)]

可能符合要求。

于 2012-04-11T14:30:59.477 回答
2

没有任何进一步的信息,它将是timeval的定义:

class timeval(Structure):
    _fields_ = [("tv_sec",c_long),
                 ("tv_usec", c_long)]

class S(Structure):
    _fields_ = [("x",c_int),
                 ("t", timeval)]
于 2012-04-11T14:31:58.250 回答