Код
/* integer */
typedef int INT;
typedef signed int SINT;
typedef unsigned int UINT;
#define MAXUINT ((UINT)(-1))
/* byte */
typedef char CHAR;
typedef signed char SCHAR;
typedef unsigned char UCHAR;
typedef CHAR INT8;
typedef SCHAR SINT8;
typedef UCHAR UINT8;
#define MAXUINT8 ((UINT8)(-1))
/* word */
typedef short INT16;
typedef signed short SINT16;
typedef unsigned short UINT16;
#define MAXUINT16 ((UINT16)(-1))
/* double word */
typedef long INT32;
typedef signed long SINT32;
typedef unsigned long UINT32;
#define MAXUINT32 ((UINT32)(-1))
/* quad word */
typedef long long INT64;
typedef signed long long SINT64;
typedef unsigned long long UINT64;
#define MAXUINT64 ((UINT64)(-1))
/* utils */
#define MAKEUINT16(byte_h, byte_l) ((UINT16)(((UINT16)byte_h << 8)|(UINT16)byte_l))
#define HIBYTE(word) ((UINT8)((UINT16)word >> 8))
#define LOBYTE(word) ((UINT8)((UINT16)word & 0xff))
#define MAKEUINT32(word_h, word_l) ((UINT32)(((UINT32)word_h << 16)|(UINT32)word_l))
#define HIWORD(longv) ((UINT16)((UINT32)longv >> 16))
#define LOWORD(longv) ((UINT16)((UINT32)longv & 0xffff))
#define SWAP16(n16) (MAKEUINT16(LOBYTE(n16), HIBYTE(n16)))
#define SWAP32(n32) (MAKEUINT32(SWAP16(LOWORD(n32)), SWAP16(HIWORD(n32))))