Revision 1 of 2, by WikiArchive on 11-4-2026. The page as it is now.
Compiler Mode/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)
æ¤æ¨¡å¼�为 `FPC` 模å¼�æ·»åŠ äº†é¢�外功能,包括但ä¸�é™�于 [[Class|ç±»]]ã€�[[Interface|接å�£]] å’Œ [[Exceptions|异常]]。- 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 模�下,为过程��赋值时�略 @ 地��算符�请�阅
From the Free Pascal wiki, page "Compiler Mode/zh CN", as the Internet Archive kept it on 2025-01-18. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
