以下に示す値は、#if 前処理ディレクティブで使用するのに適した定数式で置き換えられます。実装で定義された値は、表示された値と同じかそれ以上でなければならない。
BOOL_WIDTH
CHAR_BIT
名前に反して char ではなくバイトのビット数であることに注意。
char型、signed char型、unsigned char型の幅を表すマクロCHAR_WIDTH、SCHAR_WIDTH、UCHAR_WIDTHは、CHAR_BITと同じ値に展開しなければなりません。
USHRT_WIDTH
SHRT_WIDTH
USHRT_WIDTH と同じ値に展開されます。
UINT_WIDTH
INT_WIDTH
UINT_WIDTH と同じ値に展開されます。
ULONG_WIDTH
LONG_WIDTH
ULONG_WIDTH と同じ値に展開されます。
ULLONG_WIDTH
LLONG_WIDTH
ULLONG_WIDTH と同じ値に展開されます。
MB_LEN_MAX
すべての符号なし整数型に対して、 または  で幅 N を表す接尾辞 _WIDTH を持つマクロが定義されています。
その型で表現可能な最大値 2^N - 1 を保持する接尾辞 _MAX を持つマクロがあります（符号なし整数の最小値が 0 であることは自明）。
すべての符号付き整数型に対して、 または  で幅 N を表す接尾辞 _WIDTH を持つマクロが定義されています。
最小値 -2{N-1} および最大値 2^{N-1}-1 を表す接尾辞 _MIN および _MAX を持つマクロがあります。
これらのマクロは型で表現可能で、#if前処理ディレクティブでの使用に適しており、また対応する型のオブジェクトを整数の昇格則に従って変換した式と同じ型を持ちます。
char型のオブジェクトが負の値を保持できる場合、CHAR_MINの値はSCHAR_MINと同じになり、CHAR_MAXの値はSCHAR_MAXと同じになります。それ以外の場合は、CHAR_MINの値は0とし、CHAR_MAXの値はUCHAR_MAXと同じとします。
ヘッダー  の内容を以下に示します。
値はすべて定数式で，#if 前処理ディレクティブで使用するのに適しています。
（以下のマクロでは、表示されている最小値は、実装で定義された値に置き換えるものとする）
以下のマクロでは、表示されている最小値は、実装で定義された値に置き換える必要がありますC11以降、JISCはC99の和訳なので未対応。
の例（その１）
以下のマクロでは、表示されている最小の大きさは、前節で示されているように、上記のマクロから推測される同一符号の実装定義の大きさに置き換えられます。
の例（その２）
[https://paiza.io/projects/Wm4DpDqNpduPSlBj5ugCEw?language=c 参考]
int main(void)
{
printf("BOOL_WIDTH = %zu\n", BOOL_WIDTH);
printf("defined(BOOL_WIDTH) == 0\n");
printf("CHAR_BIT = %zu\n", CHAR_BIT);
printf("defined(CHAR_BIT) == 0\n");
printf("USHRT_WIDTH = %zu\n", USHRT_WIDTH);
printf("defined(USHRT_WIDTH) == 0\n");
printf("UINT_WIDTH = %zu\n", UINT_WIDTH);
printf("defined(UINT_WIDTH) == 0\n");
printf("ULONG_WIDTH = %zu\n", ULONG_WIDTH);
printf("defined(ULONG_WIDTH) == 0\n");
printf("ULLONG_WIDTH = %zu\n", ULLONG_WIDTH);
printf("defined(ULLONG_WIDTH) == 0\n");
printf("MB_LEN_MAX = %zu\n", MB_LEN_MAX);
printf("defined(MB_LEN_MAX) == 0\n");
printf("BOOL_MAX = %zu\n", BOOL_MAX);
printf("defined(BOOL_MAX) == 0\n");
printf("CHAR_MAX = %zu\n", CHAR_MAX);
printf("defined(CHAR_MAX) == 0\n");
printf("CHAR_MIN = %zu\n", CHAR_MIN);
printf("defined(CHAR_MIN) == 0\n");
printf("CHAR_WIDTH = %zu\n", CHAR_WIDTH);
printf("defined(CHAR_WIDTH) == 0\n");
printf("INT_MAX = %zu\n", INT_MAX);
printf("defined(INT_MAX) == 0\n");
printf("INT_MIN = %zu\n", INT_MIN);
printf("defined(INT_MIN) == 0\n");
printf("INT_WIDTH = %zu\n", INT_WIDTH);
printf("defined(INT_WIDTH) == 0\n");
printf("LONG_MAX = %zu\n", LONG_MAX);
printf("defined(LONG_MAX) == 0\n");
printf("LONG_MIN = %zu\n", LONG_MIN);
printf("defined(LONG_MIN) == 0\n");
printf("LONG_WIDTH = %zu\n", LONG_WIDTH);
printf("defined(LONG_WIDTH) == 0\n");
printf("LLONG_MAX = %zu\n", LLONG_MAX);
printf("defined(LLONG_MAX) == 0\n");
printf("LLONG_MIN = %zu\n", LLONG_MIN);
printf("defined(LLONG_MIN) == 0\n");
printf("LLONG_WIDTH = %zu\n", LLONG_WIDTH);
printf("defined(LLONG_WIDTH) == 0\n");
printf("SCHAR_MAX = %zu\n", SCHAR_MAX);
printf("defined(SCHAR_MAX) == 0\n");
printf("SCHAR_MIN = %zu\n", SCHAR_MIN);
printf("defined(SCHAR_MIN) == 0\n");
printf("SCHAR_WIDTH = %zu\n", SCHAR_WIDTH);
printf("defined(SCHAR_WIDTH) == 0\n");
printf("SHRT_MAX = %zu\n", SHRT_MAX);
printf("defined(SHRT_MAX) == 0\n");
printf("SHRT_MIN = %zu\n", SHRT_MIN);
printf("defined(SHRT_MIN) == 0\n");
printf("UCHAR_MAX = %zu\n", UCHAR_MAX);
printf("defined(UCHAR_MAX) == 0\n");
printf("UCHAR_WIDTH = %zu\n", UCHAR_WIDTH);
printf("defined(UCHAR_WIDTH) == 0\n");
printf("USHRT_MAX = %zu\n", USHRT_MAX);
printf("defined(USHRT_MAX) == 0\n");
printf("UINT_MAX = %zu\n", UINT_MAX);
printf("defined(UINT_MAX) == 0\n");
printf("ULONG_MAX = %zu\n", ULONG_MAX);
printf("defined(ULONG_MAX) == 0\n");
printf("ULLONG_MAX = %zu\n", ULLONG_MAX);
printf("defined(ULLONG_MAX) == 0\n");
}
結果
defined(BOOL_WIDTH) == 0
CHAR_BIT = 8
defined(USHRT_WIDTH) == 0
defined(UINT_WIDTH) == 0
defined(ULONG_WIDTH) == 0
defined(ULLONG_WIDTH) == 0
MB_LEN_MAX = 16
defined(BOOL_MAX) == 0
CHAR_MAX = 127
CHAR_MIN = 4294967168
defined(CHAR_WIDTH) == 0
INT_MAX = 2147483647
INT_MIN = 2147483648
defined(INT_WIDTH) == 0
LONG_MAX = 9223372036854775807
LONG_MIN = 9223372036854775808
defined(LONG_WIDTH) == 0
LLONG_MAX = 9223372036854775807
LLONG_MIN = 9223372036854775808
defined(LLONG_WIDTH) == 0
SCHAR_MAX = 127
SCHAR_MIN = 4294967168
defined(SCHAR_WIDTH) == 0
SHRT_MAX = 32767
SHRT_MIN = 4294934528
UCHAR_MAX = 255
defined(UCHAR_WIDTH) == 0
USHRT_MAX = 65535
UINT_MAX = 4294967295
ULONG_MAX = 18446744073709551615
ULLONG_MAX = 18446744073709551615