On Mon, Oct 27, 2003 at 08:49:15PM +0100, Wolfgang Denk wrote: > In most implementations of ANSI C that I am aware of (including GCC / > glibc), the BSS segment will be used for uninitialized variables with > "static" storage class. Also, I've seen some compilers to put > variables eplicitly initialized to zero into the BSS segment, too. To > quote the C FAQ: > > Uninitialized variables with "static" duration (that is, those > declared outside of functions, and those declared with the > storage class static), are guaranteed to start out as zero, as if > the programmer had typed "= 0". Therefore, such variables C doesn't know about .bss at all - no single mentioning in the ISO C standard. But .bss is a section name used in the ELF binary format which most Linux systems are using. The gABI says defines .bss: .bss This section holds uninitialized data that contribute to the program s memory image. By definition, the system initializes the data with zeros when the program begins to run. The section occupies no file space, as indicated by the section type, SHT_NOBITS. Certainly the term ``uninitialized'' isn't as precise as desirable but that's the wording used in the relevant standard. Ralf