Conformance has a three-fold definition:
Contents |
The standard does not define any minimum implementation limit on translation units. A hosted environment has an operating system; a freestanding environment does not. A program running in a hosted environment may use all features described in the library clause (clause 7); a program running in a freestanding environment may use a subset of library features required by clause 4.
All standard library features in every fully freestanding header are required to be provided by a freestanding implementation.
Some standard library headers are conditionally freestanding.
Some standard library headers are partially freestanding.
| (since C23) |
Fully freestanding standard library headers | |
| <float.h> | Limits of floating-point types |
| <iso646.h>(since C95) | Alternative operator spellings |
| <limits.h> | Ranges of integer types |
| <stdalign.h>(since C11) | alignas andalignof convenience macros |
| <stdarg.h> | Variable arguments |
| <stdbool.h>(since C99) | Macros for boolean type |
| <stddef.h> | Common macro definitions |
| <stdint.h>(since C99) | Fixed-width integer types |
| <stdnoreturn.h>(since C11) | noreturn convenience macro |
| <stdbit.h>(since C23) | Macros to work with the byte and bit representations of types |
Conditionally fully freestanding standard library headers | |
| <fenv.h>(since C23) | Floating-point environment |
| <math.h>(since C23) | Common mathematics functions |
Partially freestanding standard library headers | |
| <stdlib.h>(since C23) | General utilities:memory management,program utilities,string conversions,random numbers,algorithms |
| <string.h>(since C23) | String handling |
C++ documentation forFreestanding and hosted implementation |