title: Is it bad practice to use -1 as an invalid value (for enums and possibly unkown values)
body: <p>Is it a bad idea to use -1 as an invalid value for an enum value(for enumerations that start at 0 or greater). For uninitialized values or values that should no longer have a valid values.
  What about for testing how functions deal with invalid</p>
  
  <pre><code>#define INVALID_ENUM_VALUE -1
  </code></pre>
  
  <p>What about setting a random uint value to -1 if its in an uninitialized/invalid(say a resource id).</p>
  
  <pre><code>#define INVALID_UNINT_VALUE -1
  </code></pre>
  
  <p>Are there potential issues with wraparound? It's not particularly likely a valid integer will have that value if the program is not very complicated and doesn't run for a long time. Should I use UINT_MAX? Give up and just use a bool to track valid state?</p>