История изменений
Исправление cvs-255, (текущая версия) :
тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».
Так длину то все равно считать надо для большинства операций со строкой.
А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз при образовании строки.
Или, например, хочешь ты вернуть подстроку из строки. С си-строками тебе придется выделить новую память, скопировать туда подстроку и завершающий 0. А с строкой в виде структуры тебе достаточно вернуть структуру с указателем на начало и длиной. И никаких аллокаций. Надо ли говорить, что аллокация - дело небыстрое?
Исправление cvs-255, :
тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».
Так длину то все равно считать надо для большинства операций со строкой.
А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз при образовании строки.
Исправление cvs-255, :
тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».
Так длину то все равно считать надо для большинства операций со строкой.
А так вот хочешь ты, например, склеить 2 строки, тебе надо выделить память суммарной длины, и затем записать сперва одну строку, а потом другую. А для этого придется считать длину строк. И так при каждой операции со строками, а не один раз в начале.
Исходная версия cvs-255, :
тогда нужно вести подсчет длины где-то. это требует цпу. в отличие от тупых перескоков до «нуля».
Так длину то все равно считать надо для большинства операций со строкой.