导入C函数并重新分配变量

时间:2013-09-12 11:34:07

标签: python c cython

我有一个C函数,我想在Python中使用,但是这个函数有一些属于旧GUI的变量(不再使用)。 有没有办法将此函数导入Python并重新为GUI变量赋值?怎么样?

例如,假设我在C中有以下函数,其中输入来自GUI:

bool validate() {
  if (inputs->name == "") {
    return false;
  }
  // ...
  return true;
}

如何在cython中声明它,以便在python中运行,以及如何覆盖输入值? 非常感谢

修改

ctest.pxd

cdef extern from "myProj.h":
  bool print()

test.pyx

def cPrint():
  # Is it possible to modify inputs here or anywhere else??
  return ctest.print()

1 个答案:

答案 0 :(得分:1)

如果变量是由C库公开的,你应该能够简单地将它们的声明添加到你的cython文件中,然后在函数调用中适当地设置它们:

cdef extern from "myProj.h":
   bool print()

   struct inputs_t:
      char* name
      ...

   inputs_t* inputs;


def cPrint():
   inputs.name = "abc"
   return print()