Re: Terminology concerning strings

Roland Illig wrote:
Roland Illig wrote:

Hi all,

in the last time I have programmed a bit with strings, and I have found four properties of them which need to be distinguished and which should be named consistently throughout the whole Midnight Commander.

* the _size_ of a string (as well as for other objects) is the number of
  bytes that is allocated for it. For arrays, it is the number of
  entries of the array. For strings it is at least _length_ + 1.

To clarify this item: I want to continue using '\0'-terminated strings, and I also want to regard them as arrays. The second sentence above is a bit misleading, so here's a second try.

* the _size_ of a string (which is regarded as an array of an arbitrary
  character type) is the number of array elements that may be accessed.

And here is the reason _why_ I want to continue using '\0'-terminated strings in the next time. Most library functions expect their arguments to be '\0'-terminated multibyte strings, so we have to provide them a trailing '\0' anyway.

For internal processing, we could invent some new string datatypes that have an explicit length field. But as long as we don't have such a datatype, we should make work easy and stick to the old convention of '\0'-terminating our strings. That way, we don't have to pass an extra length argument around to every function that does string-processing.

All that might change in future, but it's not urgent.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]