Delphi7.0 预编译指令说明.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Delphi7.0 预编译指令说明

Delphi7.0 预编译指令说明 原创文章 作者:Delphibbs---老人家 如果摘抄请注明作者,谢谢! 只是写给初学者的,请高手指正!以后如果时间允许我会天天写的! Delphi7.0 预编译指令说明 Delphi快速高效的编译器主要来自Object PASCAL的严谨,使用Delphi随时都在与编译器交流,大部分情 况下不需要干涉编译器的运行,但是有时也需要对编译器进行必要的设置。 ******************************************************************************************** ** A.1 使用编译设置对话框 编译器的编译指令是用于指定编译器对项目编译过程的动作和行为。可以通过[Project]-[Options]- [Complier]选项页进行设置(快捷键:Crtl+Shift+F11),绝大部分的编译环境都可以通过这一对话框进行调 整,他包含了对代码、语法、调试信息等的设置。 1.代码设置(Code Generation) Optimization: 是否优化代码。包括防止变量到CPU寄存器、合并分解表达式、生成中间变量等,其作用 域是局部的。 如果{$O+}或{$OPTIMIZATION ON},如下 var I: Integer; begin I := 1; //不被编译,也就是说调试的时候,这行没有断点 I := 2; end; 如果{$O-}或{$OPTIMIZATION OFF},如下 var I: Integer; begin I := 1; //被编译,也就是说调试的时候,这行有断点 I := 2; end; 缺省:{$O+}{$OPTIMIZATION ON} Stack frames: Windows 堆栈帧。其作用域是局部的,他使编译器成为远端过程和函数生成特定的开头和 结尾代码。这个指令用于Windows 3.0的实模式,对所有Delphi应用程序他应该是关闭的,一些调试工具 需要此类信息。 如果{$W+}{$STACKFRAMES ON},强制每个过程或函数生成堆帧,查找错误时,编译器需要堆帧帮忙。 如果{$W-}{$STACKFRAMES OFF},Delphi 会只在需要时才产生堆帧。 缺省:{$W-}{$STACKFRAMES OFF} 注:谁知道 Delphi 会在什么时后才产生堆帧,老人家向大家请教了? Pentium-safe FDIV: Pentium安全FDIV检查。此指令能够在Pentium处理器中指定编译器是否创建能够检 测和使用有缺陷的浮点除法指令的代码。 如果{$U+}{$SAFEDIVIDE ON}自动产生对 Pentium 芯片的 bug 检查代码。 如果{$U-}{$SAFEDIVIDE OFF}不产生对 Pentium 芯片的 bug 检查代码。 缺省:{$U-}{$SAFEDIVIDE OFF} 注:这个已经不再需要了。这批有 bug 的芯片,intel 公司已经基本回收掉了(老人家现在还保留一块, 值钱了!)。 2.运行期错误(Runtime Errors) Range Checking: 范围检查。这个指令的作用范围是局部的,用于控制范围检验代码的生成。是否对 ShortString、有序类型和Array执行越界检查。打开后增加可执行文件大小、减慢速度,一般在调试阶段 使用 如果{$R+}或{$RANGECHECKS ON},如下 var aInt: array[0..1] of Integer; I: Integer; begin I := 2; aInt[I] := 3; //运行时提示 Range Checking error end; 如果{$R-}或{$RANGECHECKS OFF},如下 var aInt: array[0..1] of Integer; I: Integer; begin I := 2; aInt[I] := 3; //运行时提示 Access violation at address ?. Read of address ?. end; //?=内存地址 缺省:{$R-}{$RANGECHECKS OFF} I/O Checking: I/O检查。这个指令的作用域为局部,用来生成对一个文件的输入和输出过程和调用结果 进行检查的代码。一般应该使其功能打开。 如果{$I+}或{$IOCHECKS ON},EInOutError检查,一旦发生I/O错误时,将会触发一个EInOutError的例外 。 如果{$I-}或{

文档评论(0)

htfyzc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档