小编Hen*_*ngy的帖子

如何使用 Cython 将 Python 列表传递给 C 函数

我正在使用 Raspberry Pi 与连接到 GPIO 的自定义硬件接口。控制软件是用 Python 编写的,自定义硬件的接口是用 C 编写的,因为它是一种更快的 C 实现。我现在需要开始从我的 Python 调用我的 C 函数,并且最近一直在学习如何在 Cython 中包装 C。除了将 Python 列表传递给 C 函数之外,我已经完成了所有工作。

我的自定义硬件需要发送 1 到 32 个字节的任何地方,因此使用数组。

Cython 教程和我在网上阅读的其他参考资料非常简单,不包括如何将列表传递给 C、使用 numpy(我没有使用),或者使用非常复杂的代码示例,这些示例缺乏足够的文档让我理解它适当地。

我现在拥有的是:

测试.c

#include <stdio.h>
#include "test.h"
void pop(void) {
    a[0] = 0x55;
    a[1] = 0x66;
    a[2] = 0x77;
    a[3] = '\0';
}
void putAll(int n, char c[]) {
    memcpy(a, c, n);
}
char *getAll(void) {
    return &a[0];
}
Run Code Online (Sandbox Code Playgroud)

测试.h

char a[4];

void putAll(int n, char[]);
char *getAll(void);
Run Code Online (Sandbox Code Playgroud)

pytest.pyx …

c python arrays cython raspberry-pi

5
推荐指数
1
解决办法
3771
查看次数

标签 统计

arrays ×1

c ×1

cython ×1

python ×1

raspberry-pi ×1