title: why does bss segment contain initial 4 bytes when no uninitialised global or static variable is there in code
body: <p>I have this simple code.</p>
  
  <pre><code>#include&lt;stdio.h&gt;
      int main()
      {
        return 0;
      }
  </code></pre>
  
  <p>running the size command on the executable show the following output</p>
  
  <pre><code>   text    data     bss     dec     hex filename
     1053     276       4    1333     535 a.out
  </code></pre>
  
  <p>My question is , even though i don't have any unintialised global or static variable, why does bss has 4 bytes?</p>