在哪里可以找到Delphi"编译器魔术"声明的完整列表?

Mas*_*ler 9 delphi

system.pas顶部的注释说明:

{ Predefined constants, types, procedures, }
{ and functions (such as True, Integer, or }
{ Writeln) do not have actual declarations.}
{ Instead they are built into the compiler }
{ and are treated as if they were declared }
{ at the beginning of the System unit.     }
Run Code Online (Sandbox Code Playgroud)

显然,这远不是一个全面的清单.有谁知道我在哪里可以找到完整的清单?

编辑:到目前为止我得到的回答似乎有点困惑,我正在寻找什么.我正在尝试查找编译器可识别但未在任何单元中声明的内置常量,类型,过程和函数的列表.示例包括High(),Writeln(),Assert(),string等.

Ser*_*est 9

是魔术功能的官方列表.关于类型和常量的好运!


Ken*_*ran 6

似乎很遗憾,没有人决定制造一个,所以我会.我不能说这是一个全面的清单.它仅仅是我从文档或通过检查缺少标识符的来源收集的内容.如果您发现遗漏,请随时编辑答案.

条件符号

许多条件符号根据编译器的版本和目标平台而有所不同,但无论版本或平台如何,都应定义以下内容:

  • DCC
  • VER<nnn>

常量

  • CompilerVersion
  • MAXINT
  • MaxLongint

例程

  • 阿布斯
  • 地址
  • 附加
  • 断言
  • 分配
  • 分配
  • AssignFile
  • BlockRead
  • BlockWrite命令
  • 打破
  • CHR
  • CloseFile
  • CONCAT
  • 继续
  • 复制
  • 十二月
  • 部署
  • EOF
  • EOLN
  • 抹去
  • 排除
  • 出口
  • FilePos
  • 文件大小
  • FillChar
  • 最终确定
  • 红晕
  • freemem在
  • 你好
  • 公司
  • 包括
  • 初始化
  • 插入
  • 长度
  • 强的松
  • PTR
  • Readln
  • ReallocMem
  • 改名
  • 重启
  • 改写
  • 回合
  • RunError
  • 寻求
  • SeekEof
  • SeekEoln
  • SetLength
  • 的SetString
  • 中SizeOf
  • 切片
  • SQR
  • STR
  • SUCC
  • 交换
  • TRUNC
  • 类型句柄
  • 所属类别
  • 类型
  • 瓦尔
  • VarCast
  • VarCopy
  • Writeln

这里似乎只适用于linux(至少在我使用的版本中):

  • open它在SysUtils.FileCreate中引用,但没有open在代码库中的任何位置定义该签名的函数.System.__open具有相同的签名,并指向libc的open功能,但系统外单位未引用所以编译器必须做更多的"神奇"来解决open__open.

类型

  • ANSIChar类型
  • 布尔
  • 字节
  • ByteBool
  • 枢机主教
  • 烧焦
  • 比较
  • 货币
  • 扩展
  • Int64的
  • 整数
  • LongBool这
  • Longint型
  • 长字
  • NativeInt
  • NativeUInt
  • OleVariant
  • 指针
  • 真实
  • Real48
  • ShortInt
  • ShortString短
  • SMALLINT
  • string(保留字,但如果你编写System.string,你可以"Ctrl + Click")
  • 文本
  • 文本文件
  • 答:64
  • 的UnicodeString
  • 变种
  • WideChar
  • WideString的
  • WordBool