参数编译指示:
符号 缺省值或格式 类型 功能
M M 16384 0 655360 全程 动态内存分配 实模式 规定栈尺寸,堆最小尺寸,堆最大尺寸
O O单元名 局部 覆盖单元开关(此单元必须是用编译指
示的{$O+}状态编译的单元
编译开关指示:
符号 类型 具体含义
A: 全程 按地址对齐
默认和优化:A+ 所有大于一安茸的变量或类型常数均从偶地址开始存放
A- 变量或类型常数均简单地放在下一可用地址
B: 全程 布尔计值控制
默认: B+ 执行完全布尔值计值运算
优化: B- 执行短路布尔值计算
D: 全程 调试信息开关
默认: D+ 将调试信息保存在一个行号表中,当运行出错时指示出错处
优化: D- 不产生调试信息行号表
E 全程 浮点运算仿真
默认: E+ 不出现8087数字协处理器时,运算允许用运行库仿真
优化: E- 必须有8087数字协处理器才能进行浮点运算
F 局部 强制远程调用
F+ 对子程序总是远程调用
默认和优化: F- 由PASCAL 自动选择对子程序的调用方式
I 局部 I/O出错检查
默认: I+ 系统执行I/O出错检查
优化: I- 系统不执行I/0出错检查
L 全程 局部符号开关
默认:L+ 产生某一模块的局部符号信息,使IDE可检查和修改模块的局部变量。
优化:L- 不产生某一模块的符号信息
N 全程 数字协处理器
默认: N- 不使用数字协处理器,实型数运算以软件实现
优化: N+ 使用数字协处理器,以硬件实现各类实型运算
O 全程 产生覆盖代码
默认和优化: O- 不产生覆盖代码
O+ 控制产生覆盖代码,经常与高度远程调用编译指示{$F+}连用
P 全程 不定长字串参数
默认: P- 不使用不定长字符串参数
优化: P+ STRING类型的字符串实参不预先确定其最大长度,调用子程序时自动设计为与实际参数一致。
Q 全程 整数溢出检查
默认和优化: Q- 整数运算不检查溢出错误
Q+ 检查溢出错误
R 局部 下标范围检查
默认和优化: R- 不执行上述检查
R+ 对运算时所有数组和字符串的下标表达式检查其值是否越界,并对变量和子界的测试值检查是否在指定的范围内
S 局部 栈空间域检查
默认: S+ 在每次子程序调用前检查是否有足够的调用空间
优化: S- 不执行上述检查
T 局部 指针类型检查
默认和优化: T- @操作返回结果类型为无类型指针
T+ @操作返回结果为类型指针
PS。看到有好多人求助关于编译开关和编译指示的东西,我就传一份上来,因为没有电子版的东东,所以自己打的,排版上就不是太好了,不好意思。尽管给出了优化,但是,调试的时候尽量不要进行优化,比如D,L,S等,----优化不一定都是最好的,呵呵,下面我给出一个比较典型的程序头,希望高手不要见笑,其中有些我没写,是因为我觉得一般不用就没写上--手太累了
{$ A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+,Y+}
{$ M 65520,0,655360}