我经常读到编译器在转换为PChar
.
的主要目的PChar
是调用库中的外部代码,这些库需要一个以零结尾的字符数组(C 风格的“字符串”)。
PChar
是PWideChar
Unicode Delphi 上的别名和PAnsiChar
非 Unicode Delphi 上的别名的类型。
另一方面, Delphi 字符串(string
= AnsiString
/ UnicodeString
,我不是在WideString
这里谈论,更不用说......)具有隐藏长度而不是终止字符。ShortString
它们也被引用计数并在写入时使用复制。
Delphi 字符串是否自动分配并使用隐式 #0 字符保持一个字符长,以便更轻松地转换为PChar
(PAnsiChar / PWideChar) 还是编译器在遇到转换时检查和调整字符串PChar
?