uintn_t
are typedefs specified* by C99 (in <stdint.h>
) and C++11 (in <cstdint>
) standards. All new compilers provide these and appopriate definition is easy to get for the few ancient ones easily, so for portability always use this.
__un
are Linux-specific typedefs predating those standards. They are not portable. The double underscore is used to signify a non-standard definition.
* For 8, 16, 32 and 64 they shall be defined if the compiler has a type of that size, additional ones may be defined.