Subj : Re: Win98 error To : borland.public.cpp.borlandcpp From : "Ed Mulroy [TeamB]" Date : Sat Mar 13 2004 06:06 pm > ... how _this_ module can guarantee that the _other_ > module has zeroed a global remains a mystery It is a lot more simple than you would think at first glance. Each of the source files is compiled into an intermediate object format. Each object contains a list of symbols it provides along with their characteristics. While statics are not known outside of that file, the data area in which they are located is given a special symbol and size to be used in later phases. When the link phase is done items of similar characteristics are grouped together, the startup code is added and items needed but not yet provided are located in the libraries. As the program beings the startup code initializes things needed by the program (for instance: parsing the command line and assembling the argv array). One thing it does is to set the unitialized data area to zero. All publics and statics are grouped into that area so all of them are zeroed independent of where they are declared. .. Ed > Bob Gonder wrote in message > news:h40750lf3s1jl99m6s5jt0nogoj6e7m9ah@4ax.com... > > Ok, re-read K&R and it says statics and externals are zeroed. > I probably missed that whole thing, not realizing at the time the full > nature of statics, and assuming that externals where in the _other_ > module, though how _this_ module can guarantee that the _other_ > module has zeroed a global remains a mystery .