关于编译器优化条件 (Visual LISP IDE) 
编译器始终检查一致性是否优化。如果指定的优化选项与某些安全规则相矛盾,编译器将发出警告消息。 
注意:Visual LISP IDE 仅在 Windows 上可用。 
安全规则包括: 
- 链接
 
- 
仅当满足以下条件时,编译器才会直接链接 AutoLISP 函数调用: 
- 该函数仅定义一次,或者由 AutoLISP 预定义,并且没有用户重新定义它。defun
 
- 函数名称不会出现在其他函数的参数列表中。
 
- 该函数未在项目中的任何位置分配。
 
 
 
- 落
 
- 
仅当所有相应的函数调用都直接链接到函数定义时,编译器才会尝试删除函数符号。如果程序按函数的符号名称调用函数,则编译器不会删除函数定义的符号。在以下情况下,函数通过符号调用: 
- 该符号将显示在声明中。vl-acad-defun
 
- 该函数是从ACTION_TILE操作字符串调用的。
 
- 函数符号是 、 或项目中某处的带引号的参数。applymapcareval
 
 
注意:对于从顶级表达式调用的函数,将忽略 Drop 声明,而不会显示警告消息。 
 
- 本地化
 
- 
如果满足以下任一条件,编译器不会在 、 和 表达式的绑定列表中本地化变量:defunlambdaforeach 
- 变量在外部顶级表达式中具有对它的非本地引用(或赋值)。
 
- 该变量按名称作为函数调用。
 
- 变量符号显示为顶级 read-eval 循环中某处的函数调用。
 
 
除了这些总是会取消优化并导致警告消息的情况之外,还有其他情况可能会导致也可能不会导致代码不正确。编译项目时,请使用项目的“安全优化”选项来禁止这些条件。如果满足这些条件,禁用安全优化将导致编译器警告。 
 
 
 
    
 |