【发布时间】:2013-01-26 07:34:53
【问题描述】:
我正在开发已从 32 位机器迁移到 64 位机器的项目(c++ 与 Python 集成)。在 Python 中,C long 与 Python Integer 进行映射。 所以我无法更改 Python 接口(客户端接口)并且总是从 python 客户端获取溢出错误。它在 32 位机器上运行良好
所以我有以下解决方案
1) 在 64 位机器中将所有 long 转换为 int。
2)在 64 位机器上声明 32 位长。
我们是否有任何通用解决方案/头文件可以让我选择声明 32 位 datatype always 所以我可以用更一般的方式处理这个问题。
我知道这可能是小问题,但我无法找到通用解决方案。
【问题讨论】:
-
只是为了记录,但 Python 的整体数据类型实际上是可变宽度的,溢出之类的东西在那里不是问题。根据 Python 版本,大数用不同的类型表示,2**1000 在 Python 2 中是 long,在更高版本中是 int。
-
@doomster,在更改 32 位后,我仍然面临来自 Python 接口的溢出错误。他们正在使用 Python 2.7。但它正在使我们的应用程序崩溃,我们需要自己动手修复
标签: c++