为什么我的 ctypes long 大小为 4 而不是使用 64 位 python 的大小 8?
Why is my ctypes long size 4 and not size 8 using 64 bit python?
我收到一个错误
的下游 Python int too large to convert to C long
,这让我怀疑 ctypes long 不知何故太小了 - 大小为 4 而不是 8。
我测试了一下,确实如此。然而,我正在使用 Python 2.7 64 位 (Anaconda)。
import ctypes as C
import os
import platform
import numpy as np
print "Python Platform Architecture: ", platform.architecture()[0]
print "Size of ctypes long: ", (C.sizeof(C.c_long))
这是输出:
Python Platform Architecture: 64bit
Size of ctypes long: 4
一个long
只保证至少是32位宽,所以在某些系统上,ctypes.c_long
只有32位。特别是,我相信在 64 位 Windows 上,ctypes.c_long
只有 32 位宽。如果它 必须 为 64 位宽,请改用 ctypes.c_int64
。
我收到一个错误
的下游 Python int too large to convert to C long
,这让我怀疑 ctypes long 不知何故太小了 - 大小为 4 而不是 8。
我测试了一下,确实如此。然而,我正在使用 Python 2.7 64 位 (Anaconda)。
import ctypes as C
import os
import platform
import numpy as np
print "Python Platform Architecture: ", platform.architecture()[0]
print "Size of ctypes long: ", (C.sizeof(C.c_long))
这是输出:
Python Platform Architecture: 64bit
Size of ctypes long: 4
一个long
只保证至少是32位宽,所以在某些系统上,ctypes.c_long
只有32位。特别是,我相信在 64 位 Windows 上,ctypes.c_long
只有 32 位宽。如果它 必须 为 64 位宽,请改用 ctypes.c_int64
。