title: How are variable and function references resolved (Linker & Compiler)?
body: <p>I was reading <a href="https://stackoverflow.com/a/6264256/1548637">this on SO</a> when I actually started to wonder how the linker resolved especially adresses of symbols in an object file and how it would be organized inside the executable file outputted by the linker.</p>
  
  <ul>
  <li><strong><em>How are variable and function references handled by the linker &amp; compiler as well as by the program itself during run time? Is there an overhead created in the executable file (which maybe could also be manipulated)?</em></strong></li>
  </ul>
  
  <p>Please feel free to answer with the use of technical vocabulary (that I could look up) if that shortens the answer...<hr>
  I'm asking with the intent to better understand how an executable file looks like (I already know that it does not consist only of machine code and data.)</p>