title: Temporary structure object constructor odd call
body: <p>I don't understand this code which should provide a different behavior in C and C++ ( <a href="https://stackoverflow.com/questions/12887700/can-code-that-is-valid-in-both-c-and-c-produce-different-behavior-when-compile">Can code that is valid in both C and C++ produce different behavior when compiled in each language?</a>)</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  struct f { };
  
  int main() {
      f();
  }
  
  int f() {
      return printf("hello");
  }
  </code></pre>
  
  <p>Why can I call f() in C++? Is it the default constructor (which I don't see by the way, is there another one "implicit"?)? In C++ that is not calling the f() function..</p>