(Added a note about Embedded C) |
(→Standard Headers) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{c title|Standard Library}} | ||
The '''C standard library''' is a [[standard library|standardized collection]] of headers and library functions for the [[C|C programming language]]. The library provides a set of commonly used macros, type definitions, and functions to perform common tasks such as [[string manipulation|string handling]], [[IO processing|input/output processing]], [[memory allocation]], [[math computations]], [[thread management]], and various other common services. | The '''C standard library''' is a [[standard library|standardized collection]] of headers and library functions for the [[C|C programming language]]. The library provides a set of commonly used macros, type definitions, and functions to perform common tasks such as [[string manipulation|string handling]], [[IO processing|input/output processing]], [[memory allocation]], [[math computations]], [[thread management]], and various other common services. | ||
Line 8: | Line 9: | ||
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. | 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. | ||
− | {| | + | {{collist |
− | | | + | | count = 5 |
− | | | + | | center = yes |
− | | | + | | width = 650px |
− | | | + | | |
− | | | + | * {{c header|assert.h}} |
− | + | * {{c header|complex.h}} | |
− | | | + | * {{c header|ctype.h}} |
− | | | + | * {{c header|errno.h}} |
− | | | + | * {{c header|fenv.h}} |
− | | | + | * {{c header|float.h}} |
− | | | + | * {{c header|inttypes.h}} |
− | | | + | * {{c header|iso646.h}} |
− | + | * {{c header|limits.h}} | |
− | | | + | * {{c header|locale.h}} |
− | | | + | * {{c header|math.h}} |
− | | | + | * {{c header|setjmp.h}} |
− | | | + | * {{c header|signal.h}} |
− | + | * {{c header|stdalign.h}} | |
− | | | + | * {{c header|stdarg.h}} |
− | | | + | * {{c header|stdatomic.h}} |
− | | | + | * {{c header|stdbool.h}} |
− | | | + | * {{c header|stddef.h}} |
− | | | + | * {{c header|stdint.h}} |
− | + | * {{c header|stdio.h}} | |
− | | | + | * {{c header|stdlib.h}} |
− | | | + | * {{c header|stdnoreturn.h}} |
− | | | + | * {{c header|string.h}} |
− | | | + | * {{c header|tgmath.h}} |
− | | | + | * {{c header|threads.h}} |
− | | | + | * {{c header|time.h}} |
− | + | * {{c header|uchar.h}} | |
− | | | + | * {{c header|wchar.h}} |
− | | | + | * {{c header|wctype.h}} |
− | | | + | }} |
− | |||
− | |||
== Optional headers == | == Optional headers == | ||
Line 50: | Line 49: | ||
3 of the 29 standard headers are optional: | 3 of the 29 standard headers are optional: | ||
− | * < | + | * {{C|complex.h|<complex.h>}} |
− | * < | + | * {{C|stdatomic.h|<stdatomic.h>}} |
− | * < | + | * {{C|threads.h|<threads.h>}} |
While implementations are encouraged to support those headers, they are not required to. | While implementations are encouraged to support those headers, they are not required to. | ||
Line 63: | Line 62: | ||
! Header Name !! Since !! Description | ! Header Name !! Since !! Description | ||
|- | |- | ||
− | |< | + | |{{C|assert.h|<assert.h>}} || C89 || Provides a set of assertion macros used in assisting with debugging and detecting logic errors. |
|- | |- | ||
− | |< | + | |{{C|complex.h|<complex.h>}} || C99 || Provides a set of functions used to manipulate complex numbers. |
|- | |- | ||
− | |< | + | |{{C|ctype.h|<ctype.h>}} || C89 || Provides a set of functions used for classifying characters. |
|- | |- | ||
− | |< | + | |{{C|errno.h|<errno.h>}} || C89 || Provides a set of predefined values for {{C|errno}}. |
|- | |- | ||
− | |< | + | |{{C|fenv.h|<fenv.h>}} || C99 || Provides a set of functions for controlling the floating-point environment. |
|- | |- | ||
− | |< | + | |{{C|float.h|<float.h>}} || C89 || Provides a set of macros defining the implementation of the floating-point environment. |
|- | |- | ||
− | |< | + | |{{C|inttypes.h|<inttypes.h>}} || C99 || Provides a set of exact width integer types. |
|- | |- | ||
− | |< | + | |{{C|iso646.h|<iso646.h>}} || NA1 || Provides a set of macros that implement an alternative way of expressing various C operators |
|- | |- | ||
− | |< | + | |{{C|limits.h|<limits.h>}} || C89 || Provides a set of macros specifying the implementation-specific limits of the integer types. |
|- | |- | ||
− | |< | + | |{{C|locale.h|<locale.h>}} || C89 || Provides a set of functions localization functions |
|- | |- | ||
− | |< | + | |{{C|math.h|<math.h>}} || C89 || Provides a set of common mathematical functions. |
|- | |- | ||
− | |< | + | |{{C|setjmp.h|<setjmp.h>}} || C89 || Provides macros to perform non-local jump operators. |
|- | |- | ||
− | |< | + | |{{C|signal.h|<signal.h>}} || C89 || Provides a set of signal handling functions. |
|- | |- | ||
− | |< | + | |{{C|stdalign.h|<stdalign.h>}} || C11 || Provides a set of macros for working with object alignments. |
|- | |- | ||
− | |< | + | |{{C|stdarg.h|<stdarg.h>}} || C89 || Provides a set of macros for working with variadic functions |
|- | |- | ||
− | |< | + | |{{C|stdatomic.h|<stdatomic.h>}} || C11 || Provides a set of functions for performing atomic operations on data. |
|- | |- | ||
− | |< | + | |{{C|stdbool.h|<stdbool.h>}} || C99 || Provides boolean macros. |
|- | |- | ||
− | |< | + | |{{C|stddef.h|<stddef.h>}} || C89 || Provides a set of commonly used type definitions within the standard library. |
|- | |- | ||
− | |< | + | |{{C|stdint.h|<stdint.h>}} || C99 || Provides a set of exact width integer types. |
|- | |- | ||
− | |< | + | |{{C|stdio.h|<stdio.h>}} || C89 || Provides a set of standard input/output processing functions. |
|- | |- | ||
− | |< | + | |{{C|stdlib.h|<stdlib.h>}} || C89 || Provides core library functions such as memory management and random number generation. |
|- | |- | ||
− | |< | + | |{{C|stdnoreturn.h|<stdnoreturn.h>}} || C11 || Provides a macro for specifying non-returning functions. |
|- | |- | ||
− | |< | + | |{{C|string.h|<string.h>}} || C89 || Provides a set of string handling|string handling functions. |
|- | |- | ||
− | |< | + | |{{C|tgmath.h|<tgmath.h>}} || C99 || Provides a set of type-generic math functions. |
|- | |- | ||
− | |< | + | |{{C|threads.h|<threads.h>}} || C11 || Provides a set of thread management functions. |
|- | |- | ||
− | |< | + | |{{C|time.h|<time.h>}} || C89 || Provides a set of date and time handling functions. |
|- | |- | ||
− | |< | + | |{{C|uchar.h|<uchar.h>}} || C11 || Provides a set of Unicode character manipulation functions. |
|- | |- | ||
− | |< | + | |{{C|wchar.h|<wchar.h>}} || NA1 || Provides a set of wide string handling|string handling functions. |
|- | |- | ||
− | |< | + | |{{C|wctype.h|<wctype.h>}} || NA1 || Provides a set of functions used for classifying wide characters. |
|} | |} | ||
== Embedded C == | == Embedded C == | ||
− | {{main|Embedded C}} | + | {{main|c/embedded|l1=Embedded C}} |
− | Embedded C introduced two optional headers | + | Embedded C introduced two optional headers {{C|stdfix.h|<stdfix.h>}} and {{C|iohw.h|<iohw.h>}}. The headers not formally part of the standard library. |
+ | |||
+ | == See also == | ||
+ | * [[List of standard c functions]] | ||
[[Category:C standard library]] | [[Category:C standard library]] |
Latest revision as of 14:28, 9 March 2016
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[edit]
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[edit]
3 of the 29 standard headers are optional:
While implementations are encouraged to support those headers, they are not required to.
Detailed description[edit]
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 | Provides a set of predefined values for 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[edit]
- Main article: Embedded C
Embedded C introduced two optional headers <stdfix.h> and <iohw.h>. The headers not formally part of the standard library.