【发布时间】:2014-03-26 14:52:56
【问题描述】:
我试图通过我的 IDL 程序运行大量数据,但是当我这样做时,我得到了无意义的结果。
如果我拆分输入,然后将每个部分分别提供给程序,然后将输出拼接在一起,它就可以正常工作。这导致认为代码中某处发生了溢出问题,但到目前为止我还没有调试它。
有没有一种方法可以更改 IDL 中的默认数据类型大小,这样如果我声明一个变量,例如...
A = functionCall(blah,blah2)
它会将变量初始化为 32 位值而不是 16 位(这是默认值)?
我知道您可以通过以下方式手动执行此操作
A = long(functionCall(blah,blah2))
我的代码有几千行,我宁愿不为每个变量手动更改它。
【问题讨论】:
-
那么您是否有内存问题或
integer和long integer变量之间的差异?如果是后者,那么只需在相关位置的代码中添加以下内容:*1L。这会将事物转换为长整数。此外,IDL 默认为 64 位,除非您运行的版本早于 6.0。