50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
// this code is licenced under Wrathmark licence
|
|
// © 2026 wullie wulliestudio.com
|
|
// please see attached licence for full usage and rights
|
|
|
|
//defined like stdint to avoid confilict
|
|
#ifndef _STDINT_H
|
|
#define _STDINT_H 1
|
|
|
|
// create the types for signed ints using base structures
|
|
typedef signed char int8_t;
|
|
typedef signed short int int16_t;
|
|
typedef signed int int32_t;
|
|
typedef signed long long int int64_t;
|
|
|
|
// same as above but unsigned
|
|
typedef unsigned char uint8_t;
|
|
typedef unsigned short int uint16_t;
|
|
typedef unsigned int uint32_t;
|
|
typedef unsigned long long int uint64_t;
|
|
|
|
// macros for long long, unsigned and unsigned long long
|
|
#define U unsigned
|
|
#define LL long long
|
|
#define ULL unsigned long long
|
|
|
|
// int max values
|
|
#define INT8_MAX ((int8_t)0x7F)
|
|
#define INT16_MAX ((int16_t)0x7FFF)
|
|
#define INT32_MAX ((int32_t)0xFFFFFFF)
|
|
#define INT64_MAX ((int64_t)0xFFFFFFFFFFFFFFFLL)
|
|
|
|
// max values for uint's
|
|
#define UINT8_MAX ((uint8_t)0xFF)
|
|
#define UINT16_MAX ((uint16_t)0xFFFF)
|
|
#define UINT32_MAX ((uint32_t)0xFFFFFFFFU)
|
|
#define UINT64_MAX ((uint64_t)0xFFFFFFFFFFFFFFFFULL)
|
|
|
|
// min values for uint
|
|
#define UINT8_MIN ((uint8_t)0)
|
|
#define UINT16_MIN ((uint16_t)0)
|
|
#define UINT32_MIN ((uint32_t)0)
|
|
#define UINT64_MIN ((uint64_t)0)
|
|
|
|
//min values for int
|
|
#define INT8_MIN ((int8_t)(-INT8_MAX - 1))
|
|
#define INT16_MIN ((int16_t)(-INT16_MAX - 1))
|
|
#define INT32_MIN ((int32_t)(-INT32_MAX - 1))
|
|
#define INT64_MIN ((int64_t)(-INT64_MAX - 1))
|
|
#endif
|