**C99-compatible integer types with a fixed size in bits**

**INT16_C**- Appends the correct suffix to a 16-bit signed integer literal.
**INT32_C**- Appends the correct suffix to a 32-bit signed integer literal.
**INT64_C**- Appends the correct suffix to a 64-bit signed integer literal.
**INT8_C**- Appends the correct suffix to an 8-bit signed integer literal.
**INTMAX_C**- Appends the correct suffix to a maximally-sized signed integer literal.
**UINT16_C**- Appends the correct suffix to a 16-bit unsigned integer literal.
**UINT32_C**- Appends the correct suffix to a 32-bit unsigned integer literal.
**UINT64_C**- Appends the correct suffix to a 64-bit unsigned integer literal.
**UINT8_C**- Appends the correct suffix to an 8-bit unsigned integer literal.
**UINTMAX_C**- Appends the correct suffix to a maximally-sized unsigned integer literal.

**INT_FAST16_MAX**- Maximum value of our int_fast16_t type.
**INT_FAST16_MIN**- Minimum value of our int_fast16_t type.
**INT_FAST32_MAX**- Maximum value of our int_fast32_t type.
**INT_FAST32_MIN**- Minimum value of our int_fast32_t type.
**INT_FAST64_MAX**- Maximum value of our int_fast64_t type.
**INT_FAST64_MIN**- Minimum value of our int_fast64_t type.
**INT_FAST8_MAX**- Maximum value of our int_fast8_t type.
**INT_FAST8_MIN**- Minimum value of our int_fast8_t type.
**INT_LEAST16_MAX**- Maximum value of our int_least16_t type.
**INT_LEAST16_MIN**- Minimum value of our int_least16_t type.
**INT_LEAST32_MAX**- Maximum value of our int_least32_t type.
**INT_LEAST32_MIN**- Minimum value of our int_least32_t type.
**INT_LEAST64_MAX**- Maximum value of our int_least64_t type.
**INT_LEAST64_MIN**- Minimum value of our int_least64_t type.
**INT_LEAST8_MAX**- Maximum value of our int_least8_t type.
**INT_LEAST8_MIN**- Minimum value of our int_least8_t type.
**INT16_MAX**- Maximum value of a signed 16-bit integer.
**INT16_MIN**- Minimum value of a signed 16-bit integer.
**INT32_MAX**- Maximum value of a signed 32-bit integer.
**INT32_MIN**- Minimum value of a signed 32-bit integer.
**INT64_MAX**- Maximum value of a signed 64-bit integer.
**INT64_MIN**- Minimum value of a signed 64-bit integer.
**INT8_MAX**- Maximum value of a signed 8-bit integer.
**INT8_MIN**- Minimum value of a signed 8-bit integer.
**INTMAX_MAX**- Maximum value of our intmax_t type.
**INTMAX_MIN**- Minimum value of our intmax_t type.
**INTPTR_MAX**- Maximum value of our intptr_t type.
**INTPTR_MIN**- Minimum value of our intptr_t type.
**UINT_FAST16_MAX**- Maximum value of our uint_fast16_t type.
**UINT_FAST32_MAX**- Maximum value of our uint_fast32_t type.
**UINT_FAST64_MAX**- Maximum value of our uint_fast64_t type.
**UINT_FAST8_MAX**- Maximum value of our uint_fast8_t type.
**UINT_LEAST16_MAX**- Maximum value of our uint_least16_t type.
**UINT_LEAST32_MAX**- Maximum value of our uint_least32_t type.
**UINT_LEAST64_MAX**- Maximum value of our uint_least64_t type.
**UINT_LEAST8_MAX**- Maximum value of our uint_least8_t type.
**UINT16_MAX**- Maximum value of an unsigned 16-bit integer.
**UINT32_MAX**- Maximum value of an unsigned 32-bit integer.
**UINT64_MAX**- Maximum value of an unsigned 64-bit integer.
**UINT8_MAX**- Maximum value of an unsigned 8-bit integer.
**UINTMAX_MAX**- Maximum value of our uintmax_t type.
**UINTPTR_MAX**- Maximum value of our uintptr_t type.

**int_fast16_t**- The fastest signed type with at least 16 bits (specified by C99).
**int_fast32_t**- The fastest signed type with at least 32 bits (specified by C99).
**int_fast64_t**- The fastest signed type with at least 64 bits (specified by C99).
**int_fast8_t**- The fastest signed type with at least 8 bits (specified by C99).
**int_least16_t**- A signed type with at least 16 bits (specified by C99).
**int_least32_t**- A signed type with at least 32 bits (specified by C99).
**int_least64_t**- A signed type with at least 64 bits (specified by C99).
**int_least8_t**- A signed type with at least 8 bits (specified by C99).
**int16_t**- A 16-bit signed fixed-width type specified by C99.
**int32_t**- A 32-bit signed fixed-width type specified by C99.
**int64_t**- A 64-bit signed fixed-width type specified by C99.
**int8_t**- An 8-bit signed fixed-width type specified by C99.
**intmax_t**- The largest signed integer on this platform (specified by C99).
**intptr_t**- A signed integer large enough to hold a void* pointer (specified by C99).
**uint_fast16_t**- The fastest unsigned type with at least 16 bits (specified by C99).
**uint_fast32_t**- The fastest unsigned type with at least 32 bits (specified by C99).
**uint_fast64_t**- The fastest unsigned type with at least 64 bits (specified by C99).
**uint_fast8_t**- The fastest unsigned type with at least 8 bits (specified by C99).
**uint_least16_t**- An unsigned type with at least 16 bits (specified by C99).
**uint_least32_t**- An unsigned type with at least 32 bits (specified by C99).
**uint_least64_t**- An unsigned type with at least 64 bits (specified by C99).
**uint_least8_t**- An unsigned type with at least 8 bits (specified by C99).
**uint16_t**- A 16-bit type unsigned fixed-width type specified by C99.
**uint32_t**- A 32-bit type unsigned fixed-width type specified by C99.
**uint64_t**- A 64-bit type unsigned fixed-width type specified by C99.
**uint8_t**- An 8-bit type unsigned fixed-width type specified by C99.
**uintmax_t**- The largest unsigned integer on this platform (specified by C99).
**uintptr_t**- An unsigned integer large enough to hold a void* pointer (specified by C99).

#define INT16_C(c) c |

**Appends the correct suffix to a 16-bit signed integer literal.**

This macro appends the correct suffix for a 16-bit signed integer literal to *c*.

#define INT32_C(c) c ## L |

**Appends the correct suffix to a 32-bit signed integer literal.**

This macro appends the correct suffix for a 32-bit signed integer literal to *c*.

#define INT64_C(c) c ## LL |

**Appends the correct suffix to a 64-bit signed integer literal.**

This macro appends the correct suffix for a 64-bit signed integer literal to *c*.

#define INT8_C(c) c |

**Appends the correct suffix to an 8-bit signed integer literal.**

This macro appends the correct suffix for an 8-bit signed integer literal to *c*.

#define INTMAX_C(c) c ## LL |

**Appends the correct suffix to a maximally-sized signed integer literal.**

This macro appends the correct suffix for a maximally-sized (on the TIGCC
platform) signed integer literal to *c*.

#define UINT16_C(c) c ## U |

**Appends the correct suffix to a 16-bit unsigned integer literal.**

This macro appends the correct suffix for a 16-bit unsigned integer literal to *c*.

#define UINT32_C(c) c ## UL |

**Appends the correct suffix to a 32-bit unsigned integer literal.**

This macro appends the correct suffix for a 32-bit unsigned integer literal to *c*.

#define UINT64_C(c) c ## ULL |

**Appends the correct suffix to a 64-bit unsigned integer literal.**

This macro appends the correct suffix for a 64-bit unsigned integer literal to *c*.

#define UINT8_C(c) c |

**Appends the correct suffix to an 8-bit unsigned integer literal.**

This macro appends the correct suffix for an 8-bit unsigned integer literal to *c*.

#define UINTMAX_C(c) c ## ULL |

**Appends the correct suffix to a maximally-sized unsigned integer literal.**

This macro appends the correct suffix for a maximally-sized (on the TIGCC
platform) unsigned integer literal to *c*.

#define INT_FAST16_MAX (32767) |

**Maximum value of our int_fast16_t type.**

This is the maximum value that an int_fast16_t can contain on the TIGCC platform.

#define INT_FAST16_MIN (-32767-1) |

**Minimum value of our int_fast16_t type.**

This is the minimum value that an int_fast16_t can contain on the TIGCC platform.

#define INT_FAST32_MAX (2147483647L) |

**Maximum value of our int_fast32_t type.**

This is the maximum value that an int_fast32_t can contain on the TIGCC platform.

#define INT_FAST32_MIN (-2147483647L-1) |

**Minimum value of our int_fast32_t type.**

This is the minimum value that an int_fast32_t can contain on the TIGCC platform.

#define INT_FAST64_MAX (9223372036854775807LL) |

**Maximum value of our int_fast64_t type.**

This is the maximum value that an int_fast64_t can contain on the TIGCC platform.

#define INT_FAST64_MIN (-9223372036854775807LL-1) |

**Minimum value of our int_fast64_t type.**

This is the minimum value that an int_fast64_t can contain on the TIGCC platform.

#define INT_FAST8_MAX (32767) |

**Maximum value of our int_fast8_t type.**

This is the maximum value that an int_fast8_t can contain on the TIGCC platform.

#define INT_FAST8_MIN (-32767-1) |

**Minimum value of our int_fast8_t type.**

This is the minimum value that an int_fast8_t can contain on the TIGCC platform.

#define INT_LEAST16_MAX (32767) |

**Maximum value of our int_least16_t type.**

This is the maximum value that an int_least16_t can contain on the TIGCC platform.

#define INT_LEAST16_MIN (-32767-1) |

**Minimum value of our int_least16_t type.**

This is the minimum value that an int_least16_t can contain on the TIGCC platform.

#define INT_LEAST32_MAX (2147483647L) |

**Maximum value of our int_least32_t type.**

This is the maximum value that an int_least32_t can contain on the TIGCC platform.

#define INT_LEAST32_MIN (-2147483647L-1) |

**Minimum value of our int_least32_t type.**

This is the minimum value that an int_least32_t can contain on the TIGCC platform.

#define INT_LEAST64_MAX (9223372036854775807LL) |

**Maximum value of our int_least64_t type.**

This is the maximum value that an int_least64_t can contain on the TIGCC platform.

#define INT_LEAST64_MIN (-9223372036854775807LL-1) |

**Minimum value of our int_least64_t type.**

This is the minimum value that an int_least64_t can contain on the TIGCC platform.

#define INT_LEAST8_MAX (127) |

**Maximum value of our int_least8_t type.**

This is the maximum value that an int_least8_t can contain on the TIGCC platform.

#define INT_LEAST8_MIN (-128) |

**Minimum value of our int_least8_t type.**

This is the minimum value that an int_least8_t can contain on the TIGCC platform.

#define INT16_MAX (32767) |

**Maximum value of a signed 16-bit integer.**

This is the maximum value that a signed 16-bit integer can contain.

#define INT16_MIN (-32767-1) |

**Minimum value of a signed 16-bit integer.**

This is the minimum value that a signed 16-bit integer can contain.

#define INT32_MAX (2147483647L) |

**Maximum value of a signed 32-bit integer.**

This is the maximum value that a signed 32-bit integer can contain.

#define INT32_MIN (-2147483647L-1) |

**Minimum value of a signed 32-bit integer.**

This is the minimum value that a signed 32-bit integer can contain.

#define INT64_MAX (9223372036854775807LL) |

**Maximum value of a signed 64-bit integer.**

This is the maximum value that a signed 64-bit integer can contain.

#define INT64_MIN (-9223372036854775807LL-1) |

**Minimum value of a signed 64-bit integer.**

This is the minimum value that a signed 64-bit integer can contain.

#define INT8_MAX (127) |

**Maximum value of a signed 8-bit integer.**

This is the maximum value that a signed 8-bit integer can contain.

#define INT8_MIN (-128) |

**Minimum value of a signed 8-bit integer.**

This is the minimum value that a signed 8-bit integer can contain.

#define INTMAX_MAX (9223372036854775807LL) |

**Maximum value of our intmax_t type.**

This is the maximum value that the largest signed integer can contain on the TIGCC platform.

#define INTMAX_MIN (-9223372036854775807LL-1) |

**Minimum value of our intmax_t type.**

This is the minimum value that the largest signed integer can contain on the TIGCC platform.

#define INTPTR_MAX (2147483647L) |

**Maximum value of our intptr_t type.**

This is the maximum value that a signed integer large enough to hold a pointer can contain on the TIGCC platform.

#define INTPTR_MIN (-2147483647L-1) |

**Minimum value of our intptr_t type.**

This is the minimum value that a signed integer large enough to hold a pointer can contain on the TIGCC platform.

#define UINT_FAST16_MAX (65535U) |

**Maximum value of our uint_fast16_t type.**

This is the maximum value that an uint_fast16_t can contain on the TIGCC platform.

#define UINT_FAST32_MAX (4294967295UL) |

**Maximum value of our uint_fast32_t type.**

This is the maximum value that an uint_fast32_t can contain on the TIGCC platform.

#define UINT_FAST64_MAX (18446744073709551615ULL) |

**Maximum value of our uint_fast64_t type.**

This is the maximum value that an uint_fast64_t can contain on the TIGCC platform.

#define UINT_FAST8_MAX (65535U) |

**Maximum value of our uint_fast8_t type.**

This is the maximum value that an uint_fast8_t can contain on the TIGCC platform.

#define UINT_LEAST16_MAX (65535U) |

**Maximum value of our uint_least16_t type.**

This is the maximum value that a uint_least16_t can contain on the TIGCC platform.

#define UINT_LEAST32_MAX (4294967295UL) |

**Maximum value of our uint_least32_t type.**

This is the maximum value that a uint_least32_t can contain on the TIGCC platform.

#define UINT_LEAST64_MAX (18446744073709551615ULL) |

**Maximum value of our uint_least64_t type.**

This is the maximum value that a uint_least64_t can contain on the TIGCC platform.

#define UINT_LEAST8_MAX (255) |

**Maximum value of our uint_least8_t type.**

This is the maximum value that a uint_least8_t can contain on the TIGCC platform.

#define UINT16_MAX (65535U) |

**Maximum value of an unsigned 16-bit integer.**

This is the maximum value that an unsigned 16-bit integer can contain.

#define UINT32_MAX (4294967295UL) |

**Maximum value of an unsigned 32-bit integer.**

This is the maximum value that an unsigned 32-bit integer can contain.

#define UINT64_MAX (18446744073709551615ULL) |

**Maximum value of an unsigned 64-bit integer.**

This is the maximum value that an unsigned 64-bit integer can contain.

#define UINT8_MAX (255) |

**Maximum value of an unsigned 8-bit integer.**

This is the maximum value that an unsigned 8-bit integer can contain.

#define UINTMAX_MAX (18446744073709551615ULL) |

**Maximum value of our uintmax_t type.**

This is the maximum value that the largest unsigned integer can contain on the TIGCC platform.

#define UINTPTR_MAX (4294967295UL) |

**Maximum value of our uintptr_t type.**

This is the maximum value that an unsigned integer large enough to hold a pointer can contain on the TIGCC platform.

typedef short int_fast16_t; |

**The fastest signed type with at least 16 bits (specified by C99).**

This type can be used when at least 16 bits of signed data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 16 bits.

typedef long int_fast32_t; |

**The fastest signed type with at least 32 bits (specified by C99).**

This type can be used when at least 32 bits of signed data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 32 bits.

typedef long long int_fast64_t; |

**The fastest signed type with at least 64 bits (specified by C99).**

This type can be used when at least 64 bits of signed data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 64 bits.

typedef short int_fast8_t; |

**The fastest signed type with at least 8 bits (specified by C99).**

This type can be used when at least 8 bits of signed data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is 16 bits.

typedef short int int_least16_t; |

**A signed type with at least 16 bits (specified by C99).**

This type can be used when at least 16 bits of signed data storage are wanted. In TIGCC, its size is exactly 16 bits.

typedef long int_least32_t; |

**A signed type with at least 32 bits (specified by C99).**

This type can be used when at least 32 bits of signed data storage are wanted. In TIGCC, its size is exactly 32 bits.

typedef long long int int_least64_t; |

**A signed type with at least 64 bits (specified by C99).**

This type can be used when at least 64 bits of signed data storage are wanted. In TIGCC, its size is exactly 64 bits.

typedef signed char int_least8_t; |

**A signed type with at least 8 bits (specified by C99).**

This type can be used when at least 8 bits of signed data storage are wanted. In TIGCC, its size is exactly 8 bits.

typedef short int16_t; |

**A 16-bit signed fixed-width type specified by C99.**

This type can be used when exactly 16 bits of signed data storage are wanted.

typedef long int32_t; |

**A 32-bit signed fixed-width type specified by C99.**

This type can be used when exactly 32 bits of signed data storage are wanted.

typedef long long int64_t; |

**A 64-bit signed fixed-width type specified by C99.**

This type can be used when exactly 64 bits of signed data storage are wanted.

typedef signed char int8_t; |

**An 8-bit signed fixed-width type specified by C99.**

This type can be used when exactly 8 bits of signed data storage are wanted.

typedef long long intmax_t; |

**The largest signed integer on this platform (specified by C99).**

This type can be used when one wants the widest possible signed integer on the platform. In TIGCC, this type is exactly 64 bits.

typedef long intptr_t; |

**A signed integer large enough to hold a void* pointer (specified by C99).**

This type can be used when one wants to store a pointer value in a signed integer.

typedef unsigned short uint_fast16_t; |

**The fastest unsigned type with at least 16 bits (specified by C99).**

This type can be used when at least 16 bits of unsigned data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 16 bits.

typedef unsigned long uint_fast32_t; |

**The fastest unsigned type with at least 32 bits (specified by C99).**

This type can be used when at least 32 bits of unsigned data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 32 bits.

typedef unsigned long long uint_fast64_t; |

**The fastest unsigned type with at least 64 bits (specified by C99).**

This type can be used when at least 64 bits of unsigned data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is exactly 64 bits.

typedef unsigned short uint_fast8_t; |

**The fastest unsigned type with at least 8 bits (specified by C99).**

This type can be used when at least 8 bits of unsigned data storage are wanted, and speed is more of a concern than size. In TIGCC, its size is 16 bits.

typedef unsigned short uint_least16_t; |

**An unsigned type with at least 16 bits (specified by C99).**

This type can be used when at least 16 bits of unsigned data storage are wanted. In TIGCC, its size is exactly 16 bits.

typedef unsigned long uint_least32_t; |

**An unsigned type with at least 32 bits (specified by C99).**

This type can be used when at least 32 bits of unsigned data storage are wanted. In TIGCC, its size is exactly 32 bits.

typedef unsigned long long uint_least64_t; |

**An unsigned type with at least 64 bits (specified by C99).**

This type can be used when at least 64 bits of unsigned data storage are wanted. In TIGCC, its size is exactly 64 bits.

typedef unsigned char uint_least8_t; |

**An unsigned type with at least 8 bits (specified by C99).**

This type can be used when at least 8 bits of unsigned data storage are wanted. In TIGCC, its size is exactly 8 bits.

typedef unsigned short uint16_t; |

**A 16-bit type unsigned fixed-width type specified by C99.**

This type can be used when exactly 16 bits of unsigned data storage are wanted.

typedef unsigned long uint32_t; |

**A 32-bit type unsigned fixed-width type specified by C99.**

This type can be used when exactly 32 bits of unsigned data storage are wanted.

typedef unsigned long long uint64_t; |

**A 64-bit type unsigned fixed-width type specified by C99.**

This type can be used when exactly 64 bits of unsigned data storage are wanted.

typedef unsigned char uint8_t; |

**An 8-bit type unsigned fixed-width type specified by C99.**

This type can be used when exactly 8 bits of unsigned data storage are wanted.

typedef unsigned long long uintmax_t; |

**The largest unsigned integer on this platform (specified by C99).**

This type can be used when one wants the widest possible unsigned integer on the platform. In TIGCC, this type is exactly 64 bits.

typedef unsigned long uintptr_t; |

**An unsigned integer large enough to hold a void* pointer (specified by C99).**

This type can be used when one wants to store a pointer value in an unsigned integer.