title: When to use size_t vs uint32_t?
body: <p>When to use size_t vs uint32_t?  I saw a a method in a project that receives a parameter called length (of type uint32_t) to denote the length of byte data to deal with and the method is for calculating CRC of the byte data received.  The type of the parameter was later refactored to size_t.  Is there a technical superiority to using size_t in this case?</p>
  
  <p>e.g.</p>
  
  <pre><code>- (uint16_t)calculateCRC16FromBytes:(unsigned char *)bytes length:(uint32_t)length;
  
  - (uint16_t)calculateCRC16FromBytes:(unsigned char *)bytes length:(size_t)length;
  </code></pre>