Python 的 CFFI - 将浮点值 #define 指令传递给 cdef()
Python's CFFI - Pass in floating point value #define directives to cdef()
CFFI 的文档说它支持在 cdef
中使用常量和宏(如 #define
),“前提是宏被定义为整数值”,但它不支持明确说明不支持浮点常量。我已经尝试将 #define FOO ...
语法与浮点数和 #define FOO 0.5
一起使用,但都失败了,并且没有找到更多关于如何以这种方式使用浮点值的信息。我正在尝试从 Python.
调用我的 C 库中的函数
有没有办法在不触及 C 代码的情况下解决这个限制(如果确实是一个限制)?
只支持整数。对于float之类的东西,有两种解决方案:
您当然可以将常量编写为纯 Python 代码,如果它具有已知值,并在其余 Python 代码中使用它。也就是说,放在CFFI之外。
这在 API 模式下工作:static const float FOO;
声明 FOO
可以在 C 中读取,但不能写入。
CFFI 的文档说它支持在 cdef
中使用常量和宏(如 #define
),“前提是宏被定义为整数值”,但它不支持明确说明不支持浮点常量。我已经尝试将 #define FOO ...
语法与浮点数和 #define FOO 0.5
一起使用,但都失败了,并且没有找到更多关于如何以这种方式使用浮点值的信息。我正在尝试从 Python.
有没有办法在不触及 C 代码的情况下解决这个限制(如果确实是一个限制)?
只支持整数。对于float之类的东西,有两种解决方案:
您当然可以将常量编写为纯 Python 代码,如果它具有已知值,并在其余 Python 代码中使用它。也就是说,放在CFFI之外。
这在 API 模式下工作:
static const float FOO;
声明FOO
可以在 C 中读取,但不能写入。