Python的ctypes.c_long在64位系统上是64位吗?
在C语言中,长整型(long)在64位系统上是64位的。这一点在Python的ctypes模块中有体现吗?
4 个回答
2
如果在C语言中,long
类型是64位的(比如在LP64和ILP64系统上,几乎所有64位系统都是这样,除了Windows),那么ctypes.c_long
也是64位的。如果C语言中的long类型不是64位的(比如在LLP64系统上,比如64位的Windows),那么ctypes.c_long
也就不是64位的。
4
其实不是这样的。
在64位的Windows系统上,long类型是32位的。
Python 3.1.2 (r312:79149, Mar 20 2010, 22:55:39) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes
>>> ctypes.c_long(2**31)
c_long(-2147483648)
>>> ctypes.c_long(2**31+1)
c_long(-2147483647)
>>> ctypes.c_long(2**31-1)
c_long(2147483647)
>>>
可以查看这个链接了解更多信息:在64位Windows上long的位数是多少?