CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

关于编译器优化条件(Visual LISP IDE)

2023-1-6 02:32| 发布者: admin| 查看: 379| 评论: 0|来自: AutoCAD

摘要: 编译器始终检查优化一致性。如果指定的优化选项与某些安全规则相矛盾,编译器将发出警告消息。

编译器始终检查优化一致性。如果指定的优化选项与某些安全规则相矛盾,编译器将发出警告消息。

注意:Visual LISP IDE 仅在 Windows 上可用。

安全规则是:

链接

仅当满足以下条件时,编译器才会直接链接 AutoLISP 函数调用:

  • 该函数仅定义一次,或者由 AutoLISP 预定义,并且没有用户重新定义它。defun
  • 函数名称不会出现在另一个函数的参数列表中。
  • 该函数未在项目中的任何位置分配。

仅当所有相应的函数调用都直接链接到函数定义时,编译器才会尝试删除函数符号。如果程序按函数的符号名称调用函数,则编译器不会删除函数定义的符号。在以下情况下,函数由符号调用:

  • 符号将显示在声明中。vl-acad-defun
  • 该函数是从ACTION_TILE操作字符串调用的。
  • 函数符号是项目中某个地方的引用参数。applymapcareval
注意:对于从顶级表达式调用的函数,将忽略 Drop 声明,而不会发出警告消息。
本地化

如果满足以下任一条件,编译器不会本地化 、、 和表达式的绑定列表中的变量:defunlambdaforeach

  • 变量在外部顶级表达式中具有对它的非局部引用(或赋值)。
  • 该变量按名称作为函数调用。
  • 变量符号显示为顶级读取评估循环中某处的函数调用。

除了这些总是取消优化并导致警告消息的条件之外,还有其他条件可能会导致也可能不会导致不正确的代码。编译项目时,请使用项目的“安全优化”选项来禁止这些条件。如果满足这些条件,禁用安全优化会导致编译器警告。


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部