To Walter, about char[] initialization by FF
Unknown W. Brackets
unknown at simplemachines.org
Tue Aug 1 23:01:58 PDT 2006
Andrew, I think there's a misunderstanding here. Perhaps it's a
language thing.
Let me define two things for you, in English, by my understanding of
them. I was born in Utah and raised in Los Angeles as a native speaker,
so hopefully these definitions aren't far from the standard understanding.
Default: a setting, value, or situation which persists unless action is
taken otherwise; such a thing that happens unless overridden or canceled.
Null: something which has no current setting, value, or situation (but
could have one); the absence of a setting, value, or situation.
Therefore, I should conclude that "default" and "null" are very
different concepts.
The fact that C strings are null terminated, and that encodings provide
for a "null" character (or code point or muffin or whatever they care to
call them) does not logically necessitate that this provides for a
default, or logically default, value.
It is true that, as the above definitions, it would not be wrong for the
default to be null. That would fit the definitions above perfectly.
However, so would a value of ' ' (which might be the default in some
language out there.)
It would seem logical that 0 could be used as the default, but then as
Walter pointed out... this can (and tends to) hide bugs which will bite
you eventually.
Let us suppose you were to have a string displayed in a place. It is
possible, were it blank, that you might not notice it. Next let us
suppose this space were filled with "?", "`", "ﮘ", or "ß" characters.
Do you think you would be more, or less likely to notice it?
Next, let us suppose that this character could be (in cases) detectable
as invalid. Again note that 0 is not invalid, and may appear in
strings. This sounds even better.
So a default value of 0 does not, from an implementation or practical
point of view, seem to make much sense to me. In fact, I think a
default value of "42" for int makes sense (surely it reminds you of what
six by nine is.)
But maybe that's because I never leave things at their defaults. It's
like writing a story where you expect the reader to think everyone has
brown eyes unless you say otherwise.
-[Unknown]
> Correct. As I said because of 0 is NUL in UTF-8 too. Not
> 0xFF or anything else exotic.
More information about the Digitalmars-d
mailing list