繁体   English   中英

为什么Python ctype c_char_p在OSX和Windows上返回不同的值?

[英]Why does Python ctype c_char_p return different values on OSX vs. Windows?

我正在学习更多有关Pythons ctypes模块的知识,并注意到一个奇怪的是我不确定如何解释。

在Windows(Python 2.7.4)上,返回以下内容:

>>> from ctypes import *
>>> c_char_p("Hello World!")
c_char_p('Hello World!')

而在OSX(Python 2.7.2)上,返回以下内容:

>>> from ctypes import *
>>> c_char_p("Hello World!")
c_char_p(4479401388)

此外,在OSX上, c_char_p("Hello World!")每次运行时都会返回不同的数值。

有人可以说明为什么会发生这种情况吗?

提前致谢。

查看源代码__repr__将仅显示字符串if的内容

  1. 它在Windows上运行;
  2. IsBadStringPtr返回TRUE

如果可能的话,他们可能想要显示一个字符串表示,因为这是一个非常有用的东西,但如果它指向一个意外的地方,它不会崩溃。 IsBadStringPtr仅存在于Windows上,需要进行第一次检查。 坦率地说,我很惊讶他们会使用它,因为它显然已经过时了,而且有充分的理由

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM