title: Does C support optional null parameters?
body: <p>In Python, I'm used to things like </p>
  
  <pre><code>def send_command(command, modifier = None):
  </code></pre>
  
  <p>and then the modifier argument is optional, and the absence of the argument can be differentiated from an argument of 0.  Is there similar functionality in C?  I'm inexperienced with C, and Googling, but can't find a clear statement of how to use optional parameters in C.  It seems you can assign them similarly, like this:</p>
  
  <pre><code>void send_command(uint8_t command, uint8_t modifier = 0) {
  </code></pre>
  
  <p>so the second argument is optional and defaults to 0 if not used?  <strong>(Edit: No, this is invalid C anyway)</strong></p>
  
  <p>But can the function distinguish between <code>send_command(SOMETHING)</code> and <code>send_command(SOMETHING, 0)</code>?  Ideally, the second parameter could be any uint8 value, including 0.  </p>
  
  <p>Maybe NULL is different from 0?</p>
  
  <pre><code>void send_command(uint8_t command, uint8_t modifier = NULL) {
  </code></pre>