• IDL 编译


    IDL 程序分两类:过程 pro  和函数 Function, 最大区别是函数有返回值
    pro add,a,b
      print,a+b
    end
     
    function add,a, b
      return,a+b 
    end
     
    1  .compile .run .rnew 编辑
    IDL 编译程序有.compile .run .rnew, 都需要在IDL命令行中输入
    % Compiled module: ADD.
    IDL> .compile 'C:UsersLQQIDLWorkspace estIDL_IDLBridge_testadd.pro'
    % Compiled module: ADD.
    IDL> .run 'C:UsersLQQIDLWorkspace estIDL_IDLBridge_testadd.pro'
    % Compiled module: ADD.
    IDL> .rnew 'C:UsersLQQIDLWorkspace estIDL_IDLBridge_testadd.pro'
    % Compiled module: ADD.
    .compile 可以对多个函数/过程同时被编译
    .run 是用来编译和执行IDL主程序的命令组合
    .rnew与run类似,但在主程序编译和运行之前将删除已经存在的变量
     
    2. resolve_routine 编译
    resolve_routine 以IDL程序模块名作为参数,编译同名文件。
    优点在于可在IDL程序模块里编译其他程序模块,无需命令行,不管模块之前是否已编译过,都会被重新编译
    pro test_resolve_routine
      compile_opt idl2
      resolve_routine, 'add', /EITHER
      add, 1,2
    end
     
    3. resolve_all 编译
    resolve_all 与 resolve_routine类似。将交互的搜索IDL内存中任何未编译的模块同时编译它们。
     
    IDL编译规则
    1. 编译到主程序后,编译就会停止,接着编译和运行主程序。
        这个规则表明了在一个*.pro文件中,只允许有一个主程序模块(与文件名同名模块);
        如果要编译所有程序模块,主程序模块必须时在文件中最后一个程序模块。
    2. 编译到文件末尾或适合其他规则时,文件将停止编译。
        这个规则表明,如果此文件中没有一个与文件名相同的模块,文件中所有模块将会被编译,但不运行任何一个模块。
     
    注意:IDL内置的系统过程,如plot, surface等优先级较高,因此,尽量避免自己的程序与IDL内置命令相同
     
  • 相关阅读:
    HotSpot算法实现
    垃圾收集器(一)
    Java内存区域
    第53条:接口优先于反射机制
    C# 文本转语音,在语音播放过程中停止语音
    C# an error has occurred while updating the entries.see the log file
    音频播放时出现 Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first. https://goo.gl/xX8pDD
    C# CSV文件读写
    图解 SQL-Server新建作业
    FineUI 布局宽度自适应,后台回调js方法
  • 原文地址:https://www.cnblogs.com/lqqgis/p/13626390.html
Copyright © 2020-2023  润新知