Subject: Re: Question about initializing variables
To: Joao Carlos Mendes Luis <jonny@gaia.coppe.ufrj.br>
From: Chris G Demetriou <Chris_G_Demetriou@UX2.SP.CS.CMU.EDU>
List: tech-userlevel
Date: 04/08/1996 21:15:59
> // BSS variables are defined to have a starting value of zero.
> // (I forget where that's defined; maybe ANSI... in any case, where it
> // is, they're most likely called unintialized globals, or something...)
>
> Just remember that this is not true on all operating systems. Once
> I had a program that worked perfectly on NetBSD but did not work on
> SunOS 4.1.2. The problem: non-initialized variables that should have
> zeros as value...
What does "should" mean?
"Should," as in the programmer _should_ have initialized them, or
"should," as in the run-time environment or compiler should have
initialized them.
Automatic variables are examples of the former.
Uninitialized global variables are examples of the latter; they are
_defined_ to have a value of zero.
> Surelly not a problem if intended to use only in internal programs.
>
> // In other words, as charles said: "It's not a bug."
>
> Personally, I call it programming discipline: "NEVER leave a variable,
> any variable, without initialization !"
Indeed, not specifying a value for a global is _not_ leaving it
uninitialized, it's defined to be initializing it to zero.
_I_ call bad programming discipline not knowing when variables are
required to be initialized... 8-)
cgd