From WikiChip
Editing c/standard library
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help pages.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | |||
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 9: | Line 8: | ||
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. | ||
− | { | + | {| style="width: 600px; margin-left: auto; margin-right: auto;" |
− | | | + | |<[[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 == | == Optional headers == | ||
Line 49: | Line 50: | ||
3 of the 29 standard headers are optional: | 3 of the 29 standard headers are optional: | ||
− | * | + | * <[[complex.h]]> |
− | * | + | * <[[stdatomic.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 62: | Line 63: | ||
! Header Name !! Since !! 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 || Provides a set of predefined values for [[errno (C)|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 function]]s | |
|- | |- | ||
− | + | |<[[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 || Provides a set of [[string handling|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 || Provides a set of wide [[string handling|string handling functions]]. | |
|- | |- | ||
− | + | |<[[wctype.h]]> || NA1 || Provides a set of functions used for classifying wide characters. | |
|} | |} | ||
== Embedded C == | == Embedded C == | ||
− | {{main| | + | {{main|Embedded C}} |
− | Embedded C introduced two optional headers | + | Embedded C introduced two optional headers [[stdfix.h - C|<stdfix.h>]] and [[iohw.h - C|<iohw.h>]]. The headers not formally part of the standard library. |
== See also == | == See also == |