char[] initialization

Derek derek at psyc.ward
Sat Jul 29 05:36:52 PDT 2006


On Sat, 29 Jul 2006 06:29:21 -0600, Hasan Aljudy wrote:

> kris wrote:
>> Andrew Fedoniouk wrote:
>> 
>>> Could somebody shed light on the subject:
>>>
>>> According to http://digitalmars.com/d/type.html
>>>
>>> characters in D are getting initialized by following values
>>>
>>> char -> 0xFF
>>> wchar -> 0xFFFF
>>> dchar -> 0x0000FFFF
>>>
>>> what is the idea to have string initialized by valid character code 
>>> instead of 0?
>> 
>> Try google?
>> 
>> http://www.digitalmars.com/d/archives/digitalmars/D/3239.html
> 
> I don't understand why the compiler should initialize variables to 
> illegal values!!
> 
> OK, is it because you have to initialize variables explicitly?
> Just WHY?
> 
> As far as I know, the notion that non-initialized variables are bad is a 
> side-effect of the C (and C++) language, because non-inited variables 
> are garbage.
> 
> However, in D (and Java .. and others), vars are always initialized.
> So, if the compiler can init variables to good defaults, why should it 
> still be considered a bad habit not to init variables explicitly? That 
> just makes no sense to me.

I believe that D's philopsophy is that all datatypes are initialized to
'invalid' values if they possibly can be. The ones that can't are integers,
bytes, and bools. References, floating point values, and characters are
initialized to 'wrong' values.

-- 
Derek Parnell
Melbourne, Australia
"Down with mediocrity!"



More information about the Digitalmars-d mailing list