Přeskočit obsah

Řetězce¤

Řetězce v SP-Lang používají UTF-8 kódování. Reprezentace typu řetězce je str.

Reprezentace řetězce¤

Řetězec je reprezentován P-String odpovídajícím záznamu s následujícími položkami:

  • Délka řetězce v bajtech jako 64bitové nezáporné číslo.
  • Ukazatel na začátek dat řetězce.

Řetězec je také pole bajtů

Hodnota str je binárně kompatibilní s [ui8], seznamem ui8.

Kompatibilita s řetězci ukončenými NULL¤

Hodnota str NESMÍ končit s \0 (NULL).

Další \0 může být umístěno hned za daty řetězce, ale nesmí být zahrnuto do délky řetězce. To poskytuje přímou kompatibilitu se systémy řetězců ukončených NULL. Není však implicitně zaručeno str.

Řetězec ukončený NULL může být "převeden" na str vytvořením nového str pomocí strlen() a aktuálního ukazatele na data řetězce. Alternativně může být také vytvořena úplná kopie.

Data řetězce¤

Data řetězce jsou paměťový prostor, který obsahuje skutečnou hodnotu řetězce.

Data řetězce mohou být:

  • umístěna hned za strukturou str
  • zcela nezávislý vyrovnávací paměť řetězce (“pohled na řetězec”)

Data řetězce mohou být sdílena s mnoha strukturami str, včetně referencí na části dat řetězce (tj. podřetězce).