quote:Original post by Some Guy
Okay, what is BSS?
Executable files (whatever they are called on their OS) these days are split up into section (usually .text {=code}, .data and often .bss or .rdata). The .text & .data sections usually have data in them in the exe file which is loaded to particular positions in memory. The BSS section usually has no data associated with it in the file, just a size & location is specified, so when the exe is loaded the OS creates a block of memory for it at the required location of the requisite size and in most OS''s the specification demands that the memory bytes are zero''ed out. As the C & C++ specs say that built-in integer convertable types that are global variables and have no initial value specified are zero, the linker/compiler often place these variables in the bss section.