C Standard Library headers

From cppreference.com
< c

The interface of C standard library is defined by the following collection of headers.

<assert.h> Conditionally compiled macro that compares its argument to zero
<complex.h> (since C99) Complex number arithmetic
<ctype.h> Functions to determine the type contained in character data
<errno.h> Macros reporting error conditions
<fenv.h> (since C99) Floating-point environment
<float.h> Limits of floating-point types
<inttypes.h> (since C99) Format conversion of integer types
<iso646.h> (since C95) Alternative operator spellings
<limits.h> Ranges of integer types
<locale.h> Localization utilities
<math.h> Common mathematics functions
<setjmp.h> Nonlocal jumps
<signal.h> Signal handling
<stdalign.h> (since C11)(deprecated in C23) alignas and alignof convenience macros
<stdarg.h> Variable arguments
<stdatomic.h> (since C11) Atomic operations
<stdbit.h> (since C23) Macros to work with the byte and bit representations of types
<stdbool.h> (since C99)(deprecated in C23) Macros for boolean type
<stdckdint.h> (since C23) Macros for performing checked integer arithmetic
<stddef.h> Common macro definitions
<stdint.h> (since C99) Fixed-width integer types
<stdio.h> Input/output
<stdlib.h> General utilities: memory management, program utilities, string conversions, random numbers, algorithms
<stdmchar.h> (since C29) Text transcode
<stdnoreturn.h> (since C11)(deprecated in C23) noreturn convenience macro
<string.h> String handling
<tgmath.h> (since C99) Type-generic math (macros wrapping math.h and complex.h)
<threads.h> (since C11) Thread library
<time.h> Time/date utilities
<uchar.h> (since C11) UTF-16 and UTF-32 character utilities
<wchar.h> (since C95) Extended multibyte and wide character utilities
<wctype.h> (since C95) Functions to determine the type contained in wide character data

Feature test macros (since C23)

Feature test macros are defined in corresponding headers respectively since C23. Note that not all headers contain such a macro.

# Header Macro name Value
1 <assert.h> __STDC_VERSION_ASSERT_H__ 202311L
2 <complex.h> __STDC_VERSION_COMPLEX_H__ 202311L
3 <ctype.h> N/A
4 <errno.h> N/A
5 <fenv.h> __STDC_VERSION_FENV_H__ 202311L
6 <float.h> __STDC_VERSION_FLOAT_H__ 202311L
7 <inttypes.h> __STDC_VERSION_INTTYPES_H__ 202311L
8 <iso646.h> N/A
9 <limits.h> __STDC_VERSION_LIMITS_H__ 202311L
10 <locale.h> N/A
11 <math.h> __STDC_VERSION_MATH_H__ 202311L
12 <setjmp.h> __STDC_VERSION_SETJMP_H__ 202311L
13 <signal.h> N/A
14 <stdalign.h> N/A
15 <stdarg.h> __STDC_VERSION_STDARG_H__ 202311L
16 <stdatomic.h> __STDC_VERSION_STDATOMIC_H__ 202311L
17 <stdbit.h> __STDC_VERSION_STDBIT_H__ 202311L
18 <stdbool.h> N/A
19 <stdckdint.h> __STDC_VERSION_STDCKDINT_H__ 202311L
20 <stddef.h> __STDC_VERSION_STDDEF_H__ 202311L
21 <stdint.h> __STDC_VERSION_STDINT_H__ 202311L
22 <stdio.h> __STDC_VERSION_STDIO_H__ 202311L
23 <stdlib.h> __STDC_VERSION_STDLIB_H__ 202311L
24 <stdnoreturn.h> N/A
25 <string.h> __STDC_VERSION_STRING_H__ 202311L
26 <tgmath.h> __STDC_VERSION_TGMATH_H__ 202311L
27 <threads.h> N/A
28 <time.h> __STDC_VERSION_TIME_H__ 202311L
29 <uchar.h> __STDC_VERSION_UCHAR_H__ 202311L
30 <wchar.h> __STDC_VERSION_WCHAR_H__ 202311L
31 <wctype.h> N/A

References

  • C23 standard (ISO/IEC 9899:2024):
  • 7.1.2 Standard headers
  • C17 standard (ISO/IEC 9899:2018):
  • 7.1.2 Standard headers (p: 131-132)
  • C11 standard (ISO/IEC 9899:2011):
  • 7.1.2 Standard headers (p: 181-182)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.1.2 Standard headers (p: 165)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.1.2 Standard headers

See also

C++ documentation for C++ Standard Library headers