Compiler Mode/zh CN
From Free Pascal wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
中文(中国大陆) (zh_CN) │
FPC 旨在成为商业 Pascal 编译器的(部分)自由开源替代品。 为了实现这一目标,引入了一个编译器开关来确定“编译器兼容模式”。
每种模式都隐含地启用或禁用某些语法要求或其他语言结构。 其中一些可以通过所谓的“模式开关”单独启用或禁用,详见下文。
modes 模式
编译器兼容模式可以在源代码中通过全局编译器指令{$mode}
指定,或者通过命令行或fpc.cfg(5)
参数-M
指定。
以下是识别的九种编译器兼容模式:
- Free Pascal (
{$mode FPC}
,-MFPC
)
- 这是原始的 FPC 模式。从 FPC 3.x 开始,如果源代码或命令行没有明确指定编译器兼容模式,这将是“默认模式”。
- Object Pascal (
{$mode objFPC}
,-MobjFPC
或-S2
)
- Turbo Pascal (
{$mode TP}
,-MTP
或-So
)
- 这是 Turbo Pascal 兼容模式。它试图与 Borland TP 7.0 兼容,例如通过禁用函数重载。
- Delphi (
{$mode Delphi}
,-Mdelphi
或-Sd
)
- 这是 Delphi 兼容模式。
- Delphi with Unicode (
{$mode DelphiUnicode}
,-MdelphiUnicode
) [自 FPC 3.0.0 起]
- 与
{$mode Delphi}
类似,但默认string
类型是unicodeString
。
- Mac Pascal (
{$mode MacPas}
,-MmacPas
) [since FPC 1.9.0]
- Mac Pascal 兼容模式。
- GNU Pascal (
{$mode GPC}
,-MGPC
或-Sp
) [removed since FPC 2.2.0]
- GNU Pascal 兼容模式。
- ISO 7185 Standard Pascal (
{$mode ISO}
,-MISO
) [since FPC 2.6.0]
- 符合 ISO 7185 标准的兼容模式。
- Extended Pascal (
{$mode extendedPascal}
) [since FPC 3.2]
- 这是扩展 Pascal 模式。它尽可能符合 ISO 10206 标准。
此外,特殊模式 default
会恢复任何指定的编译器兼容模式。
由于编译器兼容模式的指定隐含地施加了严格的变化,并且可能意味着包含其他模块,因此必须在其他任何内容之前指定这些指令。
模式开关 mode switch
自 FPC 2.3.1 起,全局编译器指令 {$modeSwitch}
允许在选择模式后选择性地启用或禁用某些特性。
模式开关必须出现在任何模式选择之后,否则模式开关将被覆盖。
// 尽管选择了 FPC 模式,但在将过程变量赋值时省略 @ 地址运算符
{$mode FPC}
{$modeSwitch classicProcVars+} // 在 FPC 模式下,为过程变量赋值时省略 @ 地址运算符