Integers [language.integers]
Prefer signed integers for counting, lengths, array indexing etc.
Prefer unsigned integers of specified size for interfacing with binary data, bit manipulation, low-level hardware access and similar contexts.
Don't cast pointers to int.
Practical notes
- Signed integers are overflow-checked and raise an untracked
Defecton overflow, unsigned integers wrap intanduintvary depending on platform pointer size - use judiciously- Perform range checks before converting to
int, or convert to larger type- Conversion to signed integer raises untracked
Defecton overflow - When comparing lengths to unsigned integers, convert the length to unsigned
- Conversion to signed integer raises untracked
- Pointers may overflow
intwhen used for arithmetic - Avoid
Natural- implicit conversion frominttoNaturalcan raise aDefect- see
range
- see