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

1 回答 1

6

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

那就是说...

import os
print os.sysconf('SC_CHAR_BIT')

......我想,你会得到尽可能接近。不适用于非 Unix 平台。正如 tMC 在评论中指出的那样,它甚至不适用于所有 Unix 平台。我相信这是一个 GNU 扩展。

[更新]

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

于 2011-06-03T05:16:56.343 回答