Going by the standard, all that’s guaranteed is:
intmust be at least 16 bitslongmust be at least 32 bitslong longmust be at least 64 bits
On major 32-bit platforms:
intis 32 bitslongis 32 bits as welllong longis 64 bits
On major 64-bit platforms:
intis 32 bitslongis either 32 or 64 bitslong longis 64 bits as well
If you need a specific integer size for a particular application, rather than trusting the compiler to pick the size you want, #include <stdint.h> (or <cstdint>) so you can use these types:
int8_tanduint8_tint16_tanduint16_tint32_tanduint32_tint64_tanduint64_t
You may also be interested in #include <stddef.h> (or <cstddef>):
size_tptrdiff_t