title: Why can I invoke a function via a pointer with too many arguments?
body: <p>Say I have this function:</p>
  
  <pre><code>int func2() {
      printf("func2\n");
      return 0;
  }
  </code></pre>
  
  <p>Now I declare a pointer:</p>
  
  <pre><code>int (*fp)(double);
  </code></pre>
  
  <p>This should point to a function that takes a <code>double</code> argument and returns an <code>int</code>.</p>
  
  <p><code>func2</code> does NOT have any argument, but still when I write:</p>
  
  <pre><code>fp = func2;
  fp(2);
  </code></pre>
  
  <p>(with <code>2</code> being just an arbitrary number), func2` is invoked correctly.  </p>
  
  <p>Why is that? Is there no meaning to the number of parameters I declare for a function pointer?</p>