4x faster strlen with 4 char sentinel

Ola Fosheim Grøstad via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Jun 26 23:31:49 PDT 2016


On Monday, 27 June 2016 at 05:27:12 UTC, chmike wrote:
> Ending strings with a single null byte/char is to save space. 
> It was critical in the 70´s when C was created and memory space 
> was very limited. That's not the case anymore and I guess the

Not only to save space, some CPUs also had cheap incrementing 
load/stores and branching on zero is faster than sacrificing 
another register for a counter.

IIRC Pascal has a short string with a single byte length.

Besides there are plenty of other advantages to using a 
terminating sentinel depending on the use scenario. E.g. if you 
want many versions of the same tail or if you are splitting a 
string at white space (overwrite a white space char with a zero).


More information about the Digitalmars-d-announce mailing list