在Python中验证ctypes类型精度

时间:2011-06-03 05:02:06

标签: python c ansi limits

  1. 如果API需要64位类型,如果ctypes返回字节数,如何检查sizeof类型是否包含那么多位?
  2. 我怎么知道当前平台上每个字节有多少位?
  3. Python中定义的CHAR_BIT在哪里?

1 个答案:

答案 0 :(得分:6)

C / C ++函数签名是用C / C ++类型编写的,如“int”或“double”或“uint32_t”。所有这些都具有相应的ctypes等价物,所以通常你不关心位数。

那说......

import os
print os.sysconf('SC_CHAR_BIT')
我想,

......就像你将得到的那样接近。不适用于非Unix平台。正如tMC在评论中指出的那样,它甚至不适用于所有Unix平台;我相信它是GNU扩展。

[更新]

实际上,POSIX spec似乎要求CHAR_BIT == 8.因此,在任何支持SC_CHAR_BIT sysconf选择器的系统上,您实际上并不需要它: - )。