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之类的东西,有两种解决方案:

  1. 您当然可以将常量编写为纯 Python 代码,如果它具有已知值,并在其余 Python 代码中使用它。也就是说,放在CFFI之外。

  2. 这在 API 模式下工作:static const float FOO; 声明 FOO 可以在 C 中读取,但不能写入。