Swig python - c++ 如何使用类型 int8_t

22 投票
1 回答
6292 浏览
提问于 2025-04-17 10:26

我有一个C语言的函数,它的参数是一个8位的整数。

int8_t foo( int8_t x );

我想通过一个叫做swig的接口从我的Python代码中调用这个函数,但Python里没有int8_t这种类型。为了能使用这种类型,有一个Python模块叫做numpy。即使使用了这个模块,我还是没办法让这两个部分沟通起来。

你知道有没有办法在SWIG接口中定义这样的类型,以便能在Python中使用吗?

int8_t只是一个例子……我还需要为8到64位的有符号和无符号整数做同样的事情。

提前谢谢你,S。

1 个回答

39

在你的SWIG接口文件中使用:

%include "stdint.i"

在你第一次使用 uint8_t 之前。这样SWIG就会为你自动应用合适的类型映射。

撰写回答