linuxプラットフォームデータ型


beantalkedの多くのデータ型を見て、そこで外網の上から血の多いデータ型を調べてまとめます
 
プラットフォームにまたがるデータ型のために奇妙なタイプが使用されているため、ヘッダファイル
16ビットプラットフォームchar 1バイト8ビットshort 2バイト16ビットint 2バイト16ビットlong 4バイト32ビットポインタ2バイト32ビットプラットフォームchar 1バイト8ビットshort 2バイト16ビットint 4バイト32ビットlong 4バイトlong long 8ワードセクションポインタ4バイト64ビットプラットフォームchar 1バイトshort 2バイトint 4バイトlong 8バイト(区別)long long 8バイトポインタ8バイト(区別)
次のデータ型が定義されています.int8_t· int16_t· int32_t· int64_t· int_fast8_t· int_fast16_t· int_fast32_t· int_fast64_t· int_least8_t· int_least16_t· int_least32_t· int_least64_t uint8_t· uint16_t· uint32_t· uint64_t· uint_fast8_t· uint_fast16_t· uint_fast32_t· uint_fast64_t· uint_least8_t· uint_least16_t· uint_least32_t· uint_least64_t intmax_t· intptr_t· uintmax_t· uintptr_t INT8_C· INT16_C· INT32_C· INT64_C· INT8_MAX· INT16_MAX· INT32_MAX· INT64_MAX· INT8_MIN· INT16_MIN· INT32_MIN· INT64_MIN· INT_FAST8_MAX· INT_FAST16_MAX· INT_FAST32_MAX· INT_FAST64_MAX· INT_FAST8_MIN· INT_FAST16_MIN· INT_FAST32_MIN· INT_FAST64_MIN· INT_LEAST8_MAX· INT_LEAST16_MAX· INT_LEAST32_MAX· INT_LEAST64_MAX· INT_LEAST8_MIN· INT_LEAST16_MIN· INT_LEAST32_MIN· INT_LEAST64_MIN UINT8_C· UINT16_C· UINT32_C· UINT64_C· UINTMAX_C· UINT8_MAX· UINT16_MAX· UINT32_MAX· UINT64_MAX· UINT_FAST8_MAX· UINT_FAST16_MAX· UINT_FAST32_MAX· UINT_FAST64_MAX· UINT_LEAST8_MAX· UINT_LEAST16_MAX· UINT_LEAST32_MAX· UINT_LEAST64_MAX INTMAX_C· INTMAX_MAX· INTMAX_MIN· INTPTR_MAX· INTPTR_MIN· PTRDIFF_MAX· PTRDIFF_MIN· SIG_ATOMIC_MAX· SIG_ATOMIC_MIN· SIZE_MAX· WCHAR_MAX· WCHAR_MIN· WINT_MAX· WINT_MIN· UINTMAX_MAX· UINTPTR_MAX  

  /* TYPE DEFINITIONS */
typedef signed char int8_t;
typedef short int16_t;
typedef long int32_t;
typedef long long int64_t;

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned long uint32_t;
typedef unsigned long long uint64_t;

typedef signed char int_least8_t;
typedef short int_least16_t;
typedef long int_least32_t;
typedef long long int_least64_t;

typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned long uint_least32_t;
typedef unsigned long long uint_least64_t;

typedef signed char int_fast8_t;
typedef short int_fast16_t;
typedef long int_fast32_t;
typedef long long int_fast64_t;

typedef unsigned char uint_fast8_t;
typedef unsigned short uint_fast16_t;
typedef unsigned long uint_fast32_t;
typedef unsigned long long uint_fast64_t;

typedef long intptr_t;
typedef unsigned long uintptr_t;

typedef long long intmax_t;
typedef unsigned long long uintmax_t;

        /* LIMIT MACROS */
#define INT8_MIN    (-0x7f - 1)
#define INT16_MIN   (-0x7fff - 1)
#define INT32_MIN   (-0x7fffffff - 1)
#define INT64_MIN   (-0x7fffffffffffffff - 1)

#define INT8_MAX    0x7f [exact]
#define INT16_MAX   0x7fff [exact]
#define INT32_MAX   0x7fffffff [exact]
#define INT64_MAX   0x7fffffffffffffff [exact]

#define UINT8_MAX   0xff [exact]
#define UINT16_MAX  0xffff [exact]
#define UINT32_MAX  0xffffffff [exact]
#define UINT64_MAX  0xffffffffffffffff [exact]

#define INT_LEAST8_MIN    (-0x7f - 1)
#define INT_LEAST16_MIN   (-0x7fff - 1)
#define INT_LEAST32_MIN   (-0x7fffffff - 1)
#define INT_LEAST64_MIN   (-0x7fffffffffffffff - 1)

#define INT_LEAST8_MAX    0x7f
#define INT_LEAST16_MAX   0x7fff
#define INT_LEAST32_MAX   0x7fffffff
#define INT_LEAST64_MAX   0x7fffffffffffffff

#define UINT_LEAST8_MAX   0xff
#define UINT_LEAST16_MAX  0xffff
#define UINT_LEAST32_MAX  0xffffffff
#define UINT_LEAST64_MAX  0xffffffffffffffff

#define INT_FAST8_MIN     (-0x7f - 1)
#define INT_FAST16_MIN    (-0x7fff - 1)
#define INT_FAST32_MIN    (-0x7fffffff - 1)
#define INT_FAST64_MIN    (-0x7fffffffffffffff - 1)

#define INT_FAST8_MAX     0x7f
#define INT_FAST16_MAX    0x7fff
#define INT_FAST32_MAX    0x7fffffff
#define INT_FAST64_MAX    0x7fffffffffffffff

#define UINT_FAST8_MAX    0xff
#define UINT_FAST16_MAX   0xffff
#define UINT_FAST32_MAX   0xffffffff
#define UINT_FAST64_MAX   0xffffffffffffffff

#define INTPTR_MIN        (-0x7fffffff - 1)
#define INTPTR_MAX        0x7fffffff
#define UINTPTR_MAX       0xffffffff

#define INT8_C(x)    (x)
#define INT16_C(x)   (x)
#define INT32_C(x)   ((x) + (INT32_MAX - INT32_MAX))
#define INT64_C(x)   ((x) + (INT64_MAX - INT64_MAX))

#define UINT8_C(x)   (x)
#define UINT16_C(x)  (x)
#define UINT32_C(x)  ((x) + (UINT32_MAX - UINT32_MAX))
#define UINT64_C(x)  ((x) + (UINT64_MAX - UINT64_MAX))

#define INTMAX_C(x)  ((x) + (INT64_MAX - INT64_MAX))
#define UINTMAX_C(x) ((x) + (UINT64_MAX - UINT64_MAX))

#define PTRDIFF_MIN  INT32_MIN
#define PTRDIFF_MAX  INT32_MAX

#define SIG_ATOMIC_MIN    INT32_MIN
#define SIG_ATOMIC_MAX    INT32_MAX

#define SIZE_MAX     UINT32_MAX

#define WCHAR_MIN    0
#define WCHAR_MAX    UINT16_MAX

#define WINT_MIN     0
#define WINT_MAX     UINT16_MAX

#define INTMAX_MIN        (-0x7fffffffffffffff - 1)
#define INTMAX_MAX        0x7fffffffffffffff
#define UINTMAX_MAX       0xffffffffffffffff