zoukankan      html  css  js  c++  java
  • 编译开关的使用介绍(pascal)

    编译开关的使用介绍(pascal) 

    在pascal中有一种编译指示器——编译开关,在编译窗口中连按两下“ctrl+o”可以在程序头中出现所有编译开关情况,也可以自己书写。
      下面是一些常见开关所代表的意思:
    1)数据对齐(Align Data)
      {$A+}或{$A-}
      在{$A+}状态下,将非字符按偶地址对齐存放,可以提高8086和80286存取数据的速度。不影响字节变量、记录域结构和数组元素。在{$A-}状态下,将使用字节对齐方式,数据可存放在奇地址或偶地址。

    2)布尔运算(Boolean Evaluation)
      {$B+}或{$B-}
      在{$B+}状态下,编译器产生完全布尔表达式运算代码。布尔表达式中的每个操作都确保被计算。既是整个表达式的结果以确定,还继续运算其余的表达式。
    在{$B-}状态下,编译器产生短路布尔表达式运算代码。接着从左到右运算,当整个表达式结果确定后,就停止运算。

    3)调试信息(Debug Information)
      {$D+}或{$D-}
      {$D+}产生调试信息,它在编译程序或单元产生运行错误时,能自动定位引起错误的语句。

    4)浮点仿真(Emulation) 
      {$E+}或{$E-}
      {$E+}只是在8087协处理器不存在时,将连接运行库以便对协处理器进行仿真。
      {$N+,$E+}状态编译程序,系统将同8087仿真器连接,得到exe文件,不管有无8087,都可以在机器上进行IEEE标准754的二进制浮点运算。
      {$N+,$E-}状态下,只能在有8087时,才能进行IEEE标准754的二进制浮点运算。
      8087仿真开关如果用在一个单元是无效的,它只能用于程序的编译。

    5)输入输出检查(Input/Output Checking)
      {$I+}或{$I-}
      $I指示控制是否自动产生对调用过程的结果进行检查。

    6)数字处理(Numberic Processing)
      {$N+}或{$N-}
      {$N-}状态,在机器上只能进行实数类型运算。在{$N+}状态,在有8087协处理器或没有用{$E+}指示对8087进行仿真,都可以对IEEE浮点类型进行运算。

     7)范围检查(Range Checking)
      {$R+}或{$R-}
      $R+进行边界和范围检查

    8)栈溢出检查(Stack Overflow Checking)
      {$S+}或{$S-}
      在{$S+}状态下编译,程序在每个过程或函数的开始生成一段代码,用于检查是否有足够的栈空间供局部变量使用。若栈空间不够,程序停止运行,并显示运行错误。
      在{$S+}状态下这样调用会导致系统崩溃。

    9)变量串检查(Var String Checking)
      {$V+}或{$V-}
      在{$V+}状态下,实行严格的类型检查,要求形参、实参具有同一字符串类型。
      在{$V+}状态下,允许任意类型的字符串变量作为实参,甚至是一实参的最大长度不同于形参长度。

      BP7下的最佳参数是:
      {$A+,B-,D-,E-,F-,G+,I-,L-,N+,O-,P+,Q-,R-,S-,T-,V-,X+,Y-}
      {$M 65520,0,655360}
      其中D和L与调试有关,调试时必须打开这两个参数
      N+可以使程序能够使用扩展实型。一般情况下,Real速度最慢,不应该使用。
      在编辑环境下按Ctrl+O+O,可以自动列出默认的编译指示,然后再自己改,这样比较快
      要想知道各个参数的意义,可以察看BP7的联机帮助文档.

  • 相关阅读:
    ZipHelper 压缩和解压帮助类
    搜索引擎索引数据结构和算法
    Api之Cors跨域以及其他跨域方式
    UML类图
    NetAnalyzer2016使用方法
    30分钟快速掌握AngularJs
    抖屏与收发各种类型文件
    NET Core RC2
    如何检测被锁住的Oracle存储过程及处理办法汇总(转)
    oracle spfile和pfile文件(转)
  • 原文地址:https://www.cnblogs.com/hhdllhflower/p/1590870.html
Copyright © 2011-2022 走看看