[原] IDL关于数字值域的注意点

IDL默认方式的数字是短整型(16-bit int)。所以如下的声明方式其实是报错的:

因为,1024*32=32768,超过了短整型上限(32767),从二进制码基础可知会跳到该类型的另一头,即:

这时有两种解决办法,一种显示声明为Long(32-bit int),即数字后面跟上L:

另外一种事先声明:

idl2参见文档,记得是编译开关:1)把所有数字作为Long型 2)用中括号表示数组下标,即[]
http://www.exelisvis.com/docs/COMPILE_OPT.html

发表评论