0

我试图通过我的 IDL 程序运行大量数据,但是当我这样做时,我得到了无意义的结果。

如果我拆分输入,然后将每个部分分别提供给程序,然后将输出拼接在一起,它就可以正常工作。这导致人们认为代码中的某处发生了溢出问题,但到目前为止我还没有运气调试它。

有没有办法可以更改 IDL 中的默认数据类型大小,这样如果我声明一个变量,例如...

A = functionCall(blah,blah2)

它会将变量初始化为 32 位值而不是 16 位(这是默认值)?

我知道您可以通过以下方式手动执行此操作

A = long(functionCall(blah,blah2))

我的代码有几千行长,我宁愿不为每个变量手动更改它。

4

1 回答 1

2

如果您只想默认使用 32 位整数,则可以在代码中添加 compile_opt 语句。放

compile_opt defint32

在你的日常工作的顶部。或者,

compile_opt idl2

这是 defint32 和 strictarr 的简写(强制使用方括号进行索引)。这将使 IDL 在通常使用 16 位整数的任何地方都使用 32 位整数。

但是,我不确定这如何解决您的“大数据”问题。您可能想使用

help, /mem

检查您的内存使用情况。

于 2014-03-25T23:59:54.027 回答