I just red this stackoverflow post and still don't get it. Aside from serializing to file, when would an int not work and a uint32 would be better? Same question for uint16 and uint8. I know uint32 means the size reserved for the variable is gauranteed to be 32 bits but 1) why would that matter? 2)since the range is defined of an int wouldn't that imply the size is always the same anyways, i.e. log_2(2^32)=2