在python中检测C类型限制("limits.h")?

vmo*_*eco 10 c python ctypes limit

我在python中做了一个小测试程序,在很多情况下测试一些C函数.这个python程序用于ctypes导入和使用我的C函数.

但我也想测试的最小值和最大值的情况下(limits.hULLONG_MAX举例).

但由于其中一些限制可能取决于系统,我宁愿避免在我的程序中对其进行硬编码; 我宁愿动态地得到它.

是否有可能在python中获得这些限制值?

use*_*ica 6

我相信你能得到的最接近的是

ctypes.sizeof(whatever_type)
Run Code Online (Sandbox Code Playgroud)

它以字节为单位给出了类型的大小.例如,您可以用来ctypes.sizeof(ctypes.c_int)确定一个字节是4个字节,8还是其他一些奇怪的数字.

  • @vmonteco,它将适用于CPython支持的任何系统.设置简单整数ctypes的值是通过`PyLong_AsUnsignedLong [Long] Mask`实现的,后续转换为目标C类型.但是文档不太明确. (2认同)