什么是帕斯卡风格的字符串?

12
1个回答

12

帕斯卡风格的字符串有一个前导字节 (length),后面跟着 length 字节的字符数据。

这意味着帕斯卡风格的字符串只能编码长度在0到255个字符之间的字符串(假设使用单字节字符编码如ASCII)。

顺便提一下,另一种流行的字符串编码是 C风格的字符串,它们没有长度说明符,但使用零字节来表示字符串的结束。因此它们没有长度限制。

其他编码可能使用更多的前缀字节以便容纳更长的字符串。终止字节/标志也可以与长度前缀一起使用。


1
这段描述是正确的,但仅适用于传统的 Pascal 字符串。现代 Object Pascal 方言(如 Delphi、Free Pascal 和 Lazarus)支持多种具有不同编码和一些没有长度限制的字符串类型。请参阅 http://wiki.freepascal.org/Character_and_string_types 了解更多信息。然而,我认为 Photoshop 文档中的“Pascal 字符串”指的是传统的 Pascal 字符串。 - jwdietrich
实际上,(相当长寿的)Photoshop规范使用_Pascal字符串_代替更精确的Pascal ShortString。感谢提供参考。 - Drew Noakes
只有Delphi将"string"重命名为"shortstring",因为他们引入了ansistring。据我所知,string的起源是UCSD Pascal,请参见https://dev59.com/t18f5IYBdhLWcg3wEPIq#25079998。 - Marco van de Voort

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接