编译指示
编译指示写成具有特殊语法的注释形式。它以左花括号开头,紧跟一个美元符号“$”,后跟有关信息,而以右花括号结尾。程序中凡是可以使用注释的地方,均可以出现编译指示。
Pascal共有三种类型的编译指示:
——通过在指示字母后面指定+或-来打开或关闭某种编译性能;
——指定影响编译的参数如文件名、单元名或内存设置等;
——根据用户定义的条件符对部分源程序进行条件编译。
例如:
{$R+}表示进行下标范围检查;
{$D-,I-,S-}表示不产生调试信息,不检查I/O错误,不检查栈空间域是否溢出;
{$I };
{$M 65520,8192,655360}表示指定栈大小为65520字节,堆最小值和最大值分别为8192和655360字节。
{$IFDEF MSDOS}……{ENDIF}表示在DOS实模式下编译时编译省略号部分,否则忽略。
字母
默认
优化
类型
适用
含义
具体含义
A
A+
A+
全程
实模式
保护模式
Windows模式
按字地址对齐
+:所有大于1字节的变量或类型常数均从偶地址开始存放。
-:变量或类型常数均简单地放在下一可用地址。
B
B-
B-
局部
实模式
保护模式
Windows模式
布尔计值控制
+:执行完全布尔计值。
-:执行短路布尔计值。
D
D+
D-
全程
实模式
保护模式
Windows模式
调试信息开关
+:将调试信息保存在一个行号表中,以供当运行出错时指示错处。
-:不产生调试信息行号表。
E
E+
E-
全程
实模式
保护模式
Windows模式
浮点运算仿真
+:不出现8087数字协处理器时运算允许用运行库仿真。
-:必须有8087数字协处理器才能进行浮点运算。
F
F-
F-
局部
实模式
保护模式
Windows模式
强制远程调用
+:对子程序的调用总是远程调用。
-:由Pascal自动选择对子程序的调用方式——远程调用或近程调用。
G
G-
G+
全程
实模式
保护模式
Windows模式
产生286代码
+:编译器使用80286的附加指令以改善代码生成,但所编译的代码不能在8088或8086上运行。
-:编译器只产生通常的8086指令。
I
I+
I-
局部
实模式
保护模式
Windows模式
I/O出错检查
+:由系统执行I/O出错检查。
-:系统不执行I/O出错检查。
L
L+
L-
全程
实模式
保护模式
Windows模式
局部符号开关
+:产生某一模块的局部符号信息,使IDE可检查和修改模块的局部变量。如果调试信息开关置为{$D-},则忽略{$L+}编译指示。
-:不产生某一模块的局部符号信息。
N
N-
N+
全程
实模式
保护模式
Windows模式
数字协处理器
+:使用数字协处理器,以硬件实现各类实型数运算。
-:不使用数字协处理器,实型数运算以软件实现。
O
O-
O-
全程
实模式
产生覆盖代码
+:控制产
编译指示 来自淘豆网m.daumloan.com转载请标明出处.