title: Printing function addresses always prints 1 on linux
body: <p>I'm developing a c++ program that is dealing with addresses for different variables and functions.</p>
  <p>When I compiled my program on a Linux based OS, all functions including the main get the address of 1 instead of an 8 digit hexa number like other variables, which did not happen in Windows.</p>
  <p>I wrote this small piece of code to explain the issue</p>
  <pre><code>#include &lt;iostream&gt;
  using namespace std;
  void Function1();
  void Function1(){ 
  }
  
  int main(){
      int tmp;
      void (*a) ()=&amp;Function1;
      cout&lt;&lt;a&lt;&lt;endl;
      cout&lt;&lt;&amp;Function1&lt;&lt;endl;
      cout&lt;&lt;&amp;main&lt;&lt;endl;
      return 0;
  }
  </code></pre>
  <p>for all 3 cout calls, the output is 1 instead of the virtual address.</p>