Also, talking about integer types, EVERYONE in the world trying to do
portable and
optimized use of integers would be using the typedef's provided by the ISO/IEC C++ standard, by including
<inttypes.h> (which includes the header <stdint.h> and extends it with additional facilities provided by hosted implementations.)
Example of what EVERYONE should be using:
/* 7.18.1.1 Exact-width integer types */
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef short int16_t;
typedef unsigned short uint16_t;
typedef int int32_t;
typedef unsigned uint32_t;
typedef long long int64_t;
typedef unsigned long long uint64_t;
/* 7.18.1.2 Minimum-width integer types */
typedef signed char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
...
/* 7.18.1.3 Fastest minimum-width integer types
typedef char int_fast8_t;
typedef short int_fast16_t;
typedef int int_fast32_t;
...
And so on.
