aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/common/types.h
blob: e31ce5efca0e4215a0e700a3d701f1d274cb258c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef __JE_TYPES_H__
#define __JE_TYPES_H__
#include <stdint.h>
#include <stdlib.h>
#include <cstring>

namespace JinEngine
{

    typedef int8_t   int8;   ///< Signed integer with a size of 8 bits. Supports values from -128 to 127
    typedef uint8_t  uint8;  ///< Unsigned integer with a size of 8 bits. Supports values from 0 to 255.
    typedef uint8    byte;   ///< Unsigned integer with 8 bits (1 byte). Supports 256 values from 0 to 255.
    typedef int16_t  int16;  ///< Signed integer with a size of 16 bits. Supports values from -32768 to 32767
    typedef uint16_t uint16; ///< Unsigned integer with a size of 16 bits. Supports values from 0 to 65535.
    typedef int32_t  int32;  ///< Signed integer with a size of 32 bits. Supports values from -2147483648 to 2147483647.
    typedef uint32_t uint32; ///< Unsigned integer with a size of 32 bits. Supports values from 0 to 4294967295, (2^32 - 1).
    typedef int64_t  int64;  ///< Signed integer with a size of 64 bits. Supports values from -(2^63) to (2^63 - 1).
    typedef uint64_t uint64; ///< Unsigned integer with a size of 64 bits, Supports values from 0 to (2^64 - 1).

    typedef uint32_t uint;
    typedef int32_t  sint;

#define Union(name, ...) \
union _Ctor{                                    \
    _Ctor() { memset(this, 0, sizeof(*this)); } \
    __VA_ARGS__;                                \
} name;

#define Struct(name, ...) \
struct {__VA_ARGS__;} name;

}

#endif