From WikiChip
Standard Library - C
< c
Revision as of 06:44, 4 January 2015 by Inject (talk | contribs)

The C standard library is a standardized collection of headers and library functions for the C programming language. The library provides a set of commonly used macros, type definitions, and functions to perform common tasks such as string handling, input/output processing, memory allocation, math computations, thread management, and various other common services.


Standard Headers

Related functions, necessary types to use those functions and related macros are grouped into headers. Collectively, they are known as the standard headers.

Standard C provides 29 standard headers. The headers may be included in any order. The headers may also be included more than once - the effect of that is as if it was only included once. All standard C functions have external linkage.


<assert.h> <complex.h> <ctype.h> <errno.h> <fenv.h>
<float.h> <inttypes.h> <iso646.h> <limits.h> <locale.h>
<math.h> <setjmp.h> <signal.h> <stdalign.h> <stdarg.h>
<stdatomic.h> <stdbool.h> <stddef.h> <stdint.h> <stdio.h>
<stdlib.h> <stdnoreturn.h> <string.h> <tgmath.h> <threads.h>
<time.h> <uchar.h> <wchar.h> <wctype.h>

Optional headers

3 of the 29 standard headers are optional:

While implementations are encouraged to support those headers, they are not required to.

Detailed description

Header Name Since Description
<assert.h> C89 Provides a set of assertion macros used in assisting with debugging and detecting logic errors.
<complex.h> C99 Provides a set of functions used to manipulate complex numbers.
<ctype.h> C89 Provides a set of functions used for classifying characters.
<errno.h> C89 errno.
<fenv.h> C99 Provides a set of functions for controlling the floating-point environment.
<float.h> C89 Provides a set of macros defining the implementation of the floating-point environment.
<inttypes.h> C99 Provides a set of exact width integer types.
<iso646.h> NA1 Provides a set of macros that implement an alternative way of expressing various C operators
<limits.h> C89 Provides a set of macros specifying the implementation-specific limits of the integer types.
<locale.h> C89 Provides a set of functions localization functions
<math.h> C89 Provides a set of common mathematical functions.
<setjmp.h> C89 Provides macros to perform non-local jump operators.
<signal.h> C89 Provides a set of signal handling functions.
<stdalign.h> C11 Provides a set of macros for working with object alignments.
<stdarg.h> C89 Provides a set of macros for working with variadic functions
<stdatomic.h> C11 Provides a set of functions for performing atomic operations on data.
<stdbool.h> C99 Provides boolean macros.
<stddef.h> C89 Provides a set of commonly used type definitions within the standard library.
<stdint.h> C99 Provides a set of exact width integer types.
<stdio.h> C89 Provides a set of standard input/output processing functions.
<stdlib.h> C89 Provides core library functions such as memory management and random number generation.
<stdnoreturn.h> C11 Provides a macro for specifying non-returning functions.
<string.h> C89 string handling functions.
<tgmath.h> C99 Provides a set of type-generic math functions.
<threads.h> C11 Provides a set of thread management functions.
<time.h> C89 Provides a set of date and time handling functions.
<uchar.h> C11 Provides a set of Unicode character manipulation functions.
<wchar.h> NA1 string handling functions.
<wctype.h> NA1 Provides a set of functions used for classifying wide characters.

Embedded C

Main article: Embedded C

Embedded C introduced two optional headers <stdfix.h> and <iohw.h>. The headers not formally part of the standard library.

See also