title: C function calls: Understanding the "implicit int" rule
body: <blockquote>
    <p>If "a function" were compiled separately, the mismatch would not be detected, "the function" would return a double that main would treat as an int... In the light of what we have said about how declarations must match definitions this might seems surprising. The reason a mismatch can happen is that if there is no function prototype, a function is implicitly declared by its first appearance in an expression, such as</p>
  </blockquote>
  
  <pre><code>    sum += "the function"(line);
  </code></pre>
  
  <blockquote>
    <p>If a name that has not been previously declared occurs in an expression and is followed by a left parenthesis, it is declared by context to be a function name, the function is assumed to return an int, and nothing is assumed about its arguments.</p>
  </blockquote>
  
  <p>I apologize beforehand for the ambiguous question, but what does this mean?</p>
  
  <p>By the way this is page 73 chapter 4.3 from Brian W. Kernighan and Dennis M. Ritchie's C Programming Language book, 2nd edition.</p>