相关疑难解决方法(0)

如何从python引用C文件中的#defines?

我有一个C文件,有一堆#defines用于我想从python引用的位.有足够的它们,我宁愿不将它们复制到我的python代码中,而是有一种可接受的方法直接从python引用它们?

注意:我知道我可以打开头文件并解析它,这很简单,但如果有更多的pythonic方式,我想使用它.

编辑:

这些是非常简单的#define,用于定义掩码中位的含义,例如:

#define FOO_A 0x3
#define FOO_B 0x5
Run Code Online (Sandbox Code Playgroud)

python-c-api python-c-extension

8
推荐指数
2
解决办法
5716
查看次数

Python中C类型整数的最大值和最小值

我正在寻找一种方式来获得(使用Python)(即C型整数最大值和最小值uint8int8uint16int16uint32int32uint64int64从Python的...)。

我期待在ctypes模块中找到它

In [1]: import ctypes
In [2]: ctypes.c_uint8(256)
Out[2]: c_ubyte(0)
In [3]: ctypes.c_uint8(-1)
Out[3]: c_ubyte(255)
Run Code Online (Sandbox Code Playgroud)

但我找不到

朱莉娅(Julia)具有出色的功能:

julia> typemax(UInt8)
0xff

julia> typemin(UInt8)
0x00

julia> typemin(Int8)
-128

julia> typemax(Int8)
127
Run Code Online (Sandbox Code Playgroud)

我很确定Python具有类似的功能。

理想情况下,我什至在寻找一种方法来确保可以将给定的Python整数(据说是无界的)安全地转换为给定大小的C类型整数。如果数字不在预期的间隔内,则应引发异常。

当前溢出不会引发异常:

In [4]: ctypes.c_uint8(256)
Out[4]: c_ubyte(0)
Run Code Online (Sandbox Code Playgroud)

我看到了这样的整数值的最大值和最小值,但是由于作者正在寻找Python整数的最小值/最大值,所以有点不同……而不是C整数(来自Python)

我还注意到在python中检测C类型限制(“ limits.h”)?但是,即使它很相关,也不能真正回答我的问题。

python size ctypes integer max

2
推荐指数
1
解决办法
960
查看次数

标签 统计

ctypes ×1

integer ×1

max ×1

python ×1

python-c-api ×1

python-c-extension ×1

size ×1