Dan*_*ral 39
以0结尾具有许多性能细节,这在60年代后期非常相关.
CPU具有条件跳转测试为0的指令.实际上,一些CPU甚至具有将字节序列迭代/复制到0的指令.
如果您使用转义字符,则有两个测试两个不同的字节来断言字符串的结尾.这不仅速度较慢,而且您无法一次迭代一个字节,因为您需要前瞻或回溯的能力.
现在,其他语言(咳嗽,帕斯卡,咳嗽)使用计数/值样式的字符串.对于他们来说,任何字符都是有效的,但它们总是保持一个字符串大小的计数器.优点很明显,但这种技术也有缺点.
首先,字符串大小受计数所需的字节数限制.一个字节为您提供255个字符,两个字节为您提供65535等.今天几乎无关紧要,但每次为每个字符串添加两个字节非常昂贵.
编辑:
我不认为这个问题是愚蠢的.在当今具有内存管理,令人难以置信的CPU能力和大量内存的高级语言的情况下,过去的这些决定似乎毫无意义.而且,实际上,它们现在可能毫无意义,因此质疑它们是件好事.