If 16 bits is enough, use an explicitly 16-bit integer. If you want something architecture-sized (e.g. because it&#x27;s dealing with pointers&#x2F;addresses), use things like `size_t` which makes the intent much more clear, and which are better defined.<p>In most places, if you&#x27;re using an `int` for non-address-y stuff you&#x27;re just wasting space on wider archs, or you&#x27;re overflowing on less wide ones. The only exception off the top of my head is &quot;I have an array of bytes, but want to bulk process more efficiently than u8 would allow&quot;. Things like `size_t` (or explicit SIMD types!) are still probably a better choice there, if only to simplify the rule to &quot;just don&#x27;t use int&quot;.