类似的编译报错ENVI函数主要有:
IDL中特别是早期的IDL5.0之前,()广泛的应用在数组的下标上例如下面的两种数组使用写法运行结果是一样的:
IDL>;获取数组中的第三至第伍个元素 IDL>;获取数组中的第三至第五个元素 |
由于函数的调用也是通过函数名()的方式,故现在编写代码时不推荐用()的数组方式
–把默认的整型数据16位修改为32位;
COMPILE_OPT STRICTARR –默认数组元素的选取用中括号,不能够用小括号避免出现与函数调用混淆。
LOGICAL_PREDICATE逻辑控制中的判断规则,如果设置叻该规则则所有非0均为“真”0为“假”,可参考IDL中的控制条件。
STRICTARR即编译规则中添加“IDL整型数据为32位”和“数组下标引用必须用中括号”。
IDL在进行代码编译时首先查找系统路径或已经打开的工程或源码文件中是否存在函数定义或是存在FORWARD_FUNCTION函数指定(之前版本中常用的方式)。而前面我们写出的二次开发函数代码编译时即找不到envi_get_data函数的源码定义,也找不到forward_function指定故编译时格式报错。
如启动envi+idl时系统已经加载叻ENVI函数,即已经对那些函数进行了编译故程序中编译时不再提示格式错误。