title: Function that takes a reference to another function with no arguments
body: <p>I am wondering how the <code>RecieveInit</code> function takes the <code>CMD_GetChar</code> function as an argument with no parameters. From what I understand, the <code>ReceiveInit</code> takes an <code>rxChar</code> argument which is a pointer to a <code>uint8_t</code>. It is then cast as a pointer to a <code>void</code> object (<code>*RxCb</code>), where <code>CMD_GetChar</code> takes a pointer to a <code>uint8_t</code>.</p>
  <pre class="lang-c prettyprint-override"><code>void CMD_Init(void)
  {
    ReceiveInit( CMD_GetChar );
  }
  
  void ReceiveInit(  void (*RxCb)(uint8_t *rxChar) )
  {
  }
  
  static void CMD_GetChar( uint8_t* rxChar)
  {
  }
  
  </code></pre>
  <p>How is <code>CMD_GetChar</code> being computed within <code>ReceiveInit</code> when it doesn't even have an argument to parse?</p>