| Name | Description | Notes | Source | Availability | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 
            __STDC_ | Indicator of hosted implementation | L | M | Predefined | C95 | C99 | C11 | ||||
Most C implementations are hosted, i.e., they provide all the library facilities specified by a standard (subject to other constraints). In contrast, a free-standing implementation provides only a small subset of the Standard Library. The free-standing quality allows cut-down implementations for special circumstances to still be considered C, e.g., kernels and embedded systems.
      __STDC_ expands to 1 in a hosted implementation, and 0 otherwise. Free-standing environments are not
      specified before C95, so
      you can detect a hosted environment with:
#if !defined __STDC_HOSTED__ || __STDC_HOSTED__ . . . #endif
The following language and library entities are available in a free-standing implementation:
| Header | Purpose | Availability | ||||
|---|---|---|---|---|---|---|
| <float.h> | Characteristics of floating-point types | C89 | C90 | C95 | C99 | C11 | 
| <iso646.h> | Verbal operators | C95 | C99 | C11 | ||
| <limits.h> | Integer type characteristics | C89 | C90 | C95 | C99 | C11 | 
| <stdalign.h> | Alignment | C11 | ||||
| <stdarg.h> | Variable-length argument lists | C89 | C90 | C95 | C99 | C11 | 
| <stdbool.h> | Boolean type | C99 | C11 | |||
| <stddef.h> | Miscellaneous types and constants | C89 | C90 | C95 | C99 | C11 | 
| <stdint.h> | Integer types with particular characteristics | C99 | C11 | |||
| <stdnoreturn.h> | Non-returning functions | C11 | ||||
| Name | Description | Notes | Source | Availability | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| # | Create string token | L | + | Native | C89 | C90 | C95 | C99 | C11 | ||
| ## | Concatenate tokens | L | + | Native | C89 | C90 | C95 | C99 | C11 | ||
| #define | Define macro | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #elif | Conditionally compile | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #else | Conditionally compile | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #endif | Conditionally compile | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #error | Print diagnostic and fail | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #if | Conditionally compile | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #ifdef | Test for macro | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #ifndef | Test for macro | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #include | Include header | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #line | Set line number | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #pragma | Control compilation | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| #undef | Undefine macro | L | Directive | C89 | C90 | C95 | C99 | C11 | |||
| __alignas_ | Indicator of availability of alignas | L | M | <stdalign.h> | C11 | ||||||
| __alignof_ | Indicator of availability of alignof | L | M | <stdalign.h> | C11 | ||||||
| __bool_ | Indicate availability of boolean type | L | M | <stdbool.h> | C99 | C11 | |||||
| __DATE__ | Compilation date | L | M | Predefined | C89 | C90 | C95 | C99 | C11 | ||
| __FILE__ | Compilation file name | L | M | Predefined | C89 | C90 | C95 | C99 | C11 | ||
| __func__ | Function name | L | Predefined | C99 | C11 | ||||||
| __LINE__ | Compilation line number | L | M | Predefined | C89 | C90 | C95 | C99 | C11 | ||
| __STDC__ | Indicator of conforming implementation | L | M | Predefined | C89 | C90 | C95 | C99 | C11 | ||
| __STDC_ | Indicator of analyzability | L | ? | M | Predefined | C11 | |||||
| 
          __STDC_ | Indicator of hosted implementation | L | M | Predefined | C95 | C99 | C11 | ||||
| __STDC_ | Indicator of support for IEC 60559-compatible floating-point arithmetic | L | ? | M | Predefined | C99 | C11 | ||||
| __STDC_ | Indicator of support for IEC 60559-compatible complex arithmetic | L | ? | M | Predefined | C99 | C11 | ||||
| __STDC_ | Unicode version | L | ? | M | Predefined | C99 | C11 | ||||
| __STDC_ | Identifier of version of bounds-checking conformance | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Indicator for lack of guaranteed equivalence of multibyte and wide characters in the basic character set | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Indicator of lack of standard atomics | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Indicator for lack of complex arithmetic | L | ? | M | Predefined | C99 | C11 | ||||
| __STDC_ | Indicator of lack of standard threading | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Indicator of lack of support for variable-length arrays | L | ? | M | Predefined | C99 | C11 | ||||
| __STDC_ | Indicator of equivalence of char16_tand
          UTF-16 | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Indicator of equivalence of char32_tand
          UTF-32 | L | ? | M | Predefined | C11 | |||||
| __STDC_ | Standard version identifier | L | M | Predefined | C95 | C99 | C11 | ||||
| __TIME__ | Compilation time | L | M | Predefined | C89 | C90 | C95 | C99 | C11 | ||
| __VA_ | Macro argument list | L | Predefined | C99 | C11 | ||||||
| _Alignas | Impose stricter alignment | L | + | Keyword | C11 | ||||||
| _Alignof | Compute alignment | L | + | Keyword | C11 | ||||||
| _Atomic | Type specifier for atomic types | L | ? | Q | Keyword | C11 | |||||
| _Bool | Boolean type | L | T | Keyword | C99 | C11 | |||||
| _Complex | Type specifier for complex types | L | ? | Q | Keyword | C99 | C11 | ||||
| _Generic | Generic expression | L | + | Keyword | C11 | ||||||
| _Imaginary | Type specifier for imaginary types | L | ? | Q | Keyword | C99 | C11 | ||||
| _Noreturn | Indicator of function that does not return | L | Q | Keyword | C11 | ||||||
| _Pragma | Control compilation | L | + | Keyword | C99 | C11 | |||||
| _Static_ | Static assertion | L | + | Keyword | C11 | ||||||
| _Thread_ | Storage class for thread-local variables | L | S | Keyword | C11 | ||||||
| alignas | Impose stricter alignment | L | M | + | <stdalign.h> | C11 | |||||
| alignof | Compute alignment | L | M | + | <stdalign.h> | C11 | |||||
| and | Logical AND operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| and_eq | Bitwise AND assignment operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| atomic_ | Compare and then exchange a value with an atomic variable according to explicit constraints without spurious failure | L | (·) | Predefined | C11 | ||||||
| atomic_ | Compare and then exchange a value with an atomic variable according to explicit constraints | L | (·) | Predefined | C11 | ||||||
| auto | Storage class for automatic objects | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| bitand | Bitwise AND operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| bitor | Bitwise OR operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| bool | Boolean type | L | M | T | <stdbool.h> | C99 | C11 | ||||
| break | Exit from loop | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| break | Exit from switchstatement | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| break | Exit from loop or switchstatement | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| CHAR_ | Number of bits in unsigned char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| CHAR_ | Maximum value of char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| CHAR_ | Minimum value of char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| case | Branch in switchstatement | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| char | Specifier for integer types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| char | Character type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| compl | Bitwise complement operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| const | Marks unassignable object | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| continue | Jump to end of loop | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| DBL_ | Representable decimal digits in any real floating-point type | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Decimal digits of precision of double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Smallest xof typedoublesuch
          that1.0 + x != 1.0 | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Determinant whether doublehas
          subnormal values | L | M | <float.h> | C11 | ||||||
| DBL_ | Number of base- FLT_digits in
          mantissa ofdouble | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Maximum value of double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Maximum integral base-10 exponent yielding double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | One plus maximum integral exponent of base FLT_yieldingdouble | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Minimum normalized value of double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Minimum integral base-10 exponent yielding normalized double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | One plus minimum integral exponent of base FLT_yielding
          normalizeddouble | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| DBL_ | Minimum positive value of double | L | M | <float.h> | C11 | ||||||
| DECIMAL_ | Representable decimal digits in any real floating-point type | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| default | Multipurpose label | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| default | Default branch in switchstatement | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| default | Default branch in _Genericexpression | L | Keyword | C11 | |||||||
| defined | Test for macro | L | + | Native | C89 | C90 | C95 | C99 | C11 | ||
| do | Loop syntax | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| double | Specifier for floating-point types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| double | ‘Double-precision’ floating-point type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| double _Complex | ‘Double-precision’ floating-point complex type | L | ? | T | Native | C99 | C11 | ||||
| double _Imaginary | ‘Double-precision’ floating-point imaginary type | L | ? | T | Native | C99 | C11 | ||||
| else | Component of conditional statements | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| enum | Introduces enumeration type | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| extern | Storage class for external objects | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Representable decimal digits in any real floating-point type | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Decimal digits of precision of float | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Smallest xof typefloatsuch
          that1.0 + x != 1.0 | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Floating-point evaluation method | L | M | <float.h> | C99 | C11 | |||||
| FLT_ | Determinant whether floathas
          subnormal values | L | M | <float.h> | C11 | ||||||
| FLT_ | Number of base- FLT_digits in
          mantissa offloat | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Maximum value of float | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Maximum integral base-10 exponent yielding float | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | One plus maximum integral exponent of base FLT_yieldingfloat | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Minimum normalized value of float | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Minimum integral base-10 exponent yielding normalized float | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | One plus minimum integral exponent of base FLT_yielding
          normalizedfloat | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Characteristic of float,doubleandlong double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Characteristic of float,doubleandlong double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| FLT_ | Minimum positive value of float | L | M | <float.h> | C11 | ||||||
| false | Boolean constant ‘false’ | L | M | <stdbool.h> | C99 | C11 | |||||
| float | ‘Single-precision’ floating-point type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| float | Specifier for floating-point types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| float _Complex | ‘Single-precision’ floating-point complex type | L | ? | T | Native | C99 | C11 | ||||
| float _Imaginary | ‘Single-precision’ floating-point imaginary type | L | ? | T | Native | C99 | C11 | ||||
| for | Loop syntax | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| goto | Jump to statement | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| INT16_C() | Create constant of type int_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| INT16_ | Maximum value of int16_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT16_ | Minimum value of int16_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT32_C() | Create constant of type int_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| INT32_ | Maximum value of int32_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT32_ | Minimum value of int32_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT64_C() | Create constant of type int_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| INT64_ | Maximum value of int64_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT64_ | Minimum value of int64_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT8_C() | Create constant of type int_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| INT8_ | Maximum value of int8_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT8_ | Minimum value of int8_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Minimum value of int_ | L | M | <stdint.h> | C99 | C11 | |||||
| INT_ | Maximum value of int | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| INT_ | Minimum value of int | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| INTMAX_C() | Create constant of type intmax_t | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| INTMAX_ | Maximum value of intmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| INTMAX_ | Minimum value of intmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| INTPTR_ | Maximum value of intptr_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| INTPTR_ | Minimum value of intptr_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| if | Component of conditional statements | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| inline | Specifier for in-line functions | L | Q | Keyword | C99 | C11 | |||||
| int | Specifier for integer types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| int | Signed integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| int16_t | Signed integer type of exactly 16 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| int32_t | Signed integer type of exactly 32 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| int64_t | Signed integer type of exactly 64 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| int8_t | Signed integer type of exactly 8 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| int_ | Fastest signed integer type with at least 16 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Fastest signed integer type with at least 32 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Fastest signed integer type with at least 64 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Fastest signed integer type with at least 8 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Smallest signed integer type with at least 16 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Smallest signed integer type with at least 32 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Smallest signed integer type with at least 64 bits | L | T | <stdint.h> | C99 | C11 | |||||
| int_ | Smallest signed integer type with at least 8 bits | L | T | <stdint.h> | C99 | C11 | |||||
| intmax_t | Largest signed integer type | L | T | <stdint.h> | C99 | C11 | |||||
| intptr_t | Signed integer type capable of storing a pointer | L | ? | T | <stdint.h> | C99 | C11 | ||||
| LDBL_ | Representable decimal digits in any real floating-point type | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Decimal digits of precision of long double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Smallest xof typelong doublesuch
          that1.0 + x != 1.0 | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Determinant whether long doublehas
          subnormal values | L | M | <float.h> | C11 | ||||||
| LDBL_ | Number of base- FLT_digits in
          mantissa oflong double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Maximum value of long double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Maximum integral base-10 exponent yielding long double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | One plus maximum integral exponent of base FLT_yieldinglong double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Minimum normalized value of long double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Minimum integral base-10 exponent yielding normalized long double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | One plus minimum integral exponent of base FLT_yielding
          normalizedlong double | L | M | <float.h> | C89 | C90 | C95 | C99 | C11 | ||
| LDBL_ | Minimum positive value of long double | L | M | <float.h> | C11 | ||||||
| LLONG_ | Maximum value of long long | L | M | <limits.h> | C99 | C11 | |||||
| LLONG_ | Minimum value of long long | L | M | <limits.h> | C99 | C11 | |||||
| LONG_ | Maximum value of long | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| LONG_ | Minimum value of long | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| long | Specifier for integer and floating-point types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| long | Signed integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| long double | ‘Long’ floating-point type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| long double _Complex | ‘Long’ floating-point complex type | L | ? | T | Native | C99 | C11 | ||||
| long double _Imaginary | ‘Long’ floating-point imaginary type | L | ? | T | Native | C99 | C11 | ||||
| long long | Signed integer type | L | T | Native | C99 | C11 | |||||
| MB_ | Maximum multibyte character length | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| max_ | Type with maximum alignment requirement | L | T | <stddef.h> | C11 | ||||||
| modf() | Extract integral and fractional parts | L | (·) | Predefined | C99 | C11 | |||||
| NULL | Null pointer constant | L | M | Headers | C89 | C90 | C95 | C99 | C11 | ||
| noreturn | Indicator of function that does not return | L | M | Q | <stdnoreturn.h> | C11 | |||||
| not | Logical NOT operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| not_eq | Inequality operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| offsetof() | Determine structure-member position | L | M | (·) | <stddef.h> | C89 | C90 | C95 | C99 | C11 | |
| or | Logical OR operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| or_eq | Bitwise OR assignment operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| PTRDIFF_ | Maximum value of ptrdiff_t | H | M | <stdint.h> | C99 | C11 | |||||
| PTRDIFF_ | Minimum value of ptrdiff_t | H | M | <stdint.h> | C99 | C11 | |||||
| ptrdiff_t | Implementation-defined pointer-difference type | H | T | <stddef.h> | C89 | C90 | C95 | C99 | C11 | ||
| RSIZE_ | Maximum value of rsize_tavoiding run-time
          constraint | L | ? | M | <stdint.h> | C11 | |||||
| register | Optimize for storage in register | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| restrict | Marks unshared memory | L | Q | Keyword | C99 | C11 | |||||
| return | Exit from a function | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| rsize_t | Implementation-defined size type with implied run-time constraints | L | ? | T | Headers | C11 | |||||
| SCHAR_ | Maximum value of signed char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| SCHAR_ | Minimum value of signed char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| SHRT_ | Maximum value of short | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| SHRT_ | Minimum value of short | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| SIG_ | Maximum value of sig_ | H | M | <stdint.h> | C99 | C11 | |||||
| SIG_ | Minimum value of sig_ | H | M | <stdint.h> | C99 | C11 | |||||
| SIZE_ | Maximum value of size_t | H | M | <stdint.h> | C99 | C11 | |||||
| short | Signed integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| short | Specifier for integer types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| signed | Specifier for signed integer types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| signed
          char | Character type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| size_t | Implementation-defined size type | H | T | Headers | C89 | C90 | C95 | C99 | C11 | ||
| sizeof | Yield size of object | L | + | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| static | Multipurpose modifier | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| static | Specifier for minimum array length | L | Keyword | C99 | C11 | ||||||
| static | Storage class for block-scoped static objects | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| static | Specifier for internal functions | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| static | Storage class for file-scoped static objects | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| struct | Introduces structure type | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| switch | Select from alternative values | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| true | Boolean constant ‘true’ | L | M | <stdbool.h> | C99 | C11 | |||||
| typedef | Declare type alias | L | S | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| UCHAR_ | Maximum value of unsigned char | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| UINT16_C() | Create constant of type uint_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| UINT16_ | Maximum value of uint16_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| UINT32_C() | Create constant of type uint_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| UINT32_ | Maximum value of uint32_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| UINT64_C() | Create constant of type uint_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| UINT64_ | Maximum value of uint64_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| UINT8_C() | Create constant of type uint_ | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| UINT8_ | Maximum value of uint8_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of uint_ | L | M | <stdint.h> | C99 | C11 | |||||
| UINT_ | Maximum value of unsigned | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| UINTMAX_C() | Create constant of type uintmax_t | L | M | (·) | <stdint.h> | C99 | C11 | ||||
| UINTMAX_ | Maximum value of uintmax_t | L | M | <stdint.h> | C99 | C11 | |||||
| UINTPTR_ | Maximum value of uintptr_t | L | ? | M | <stdint.h> | C99 | C11 | ||||
| ULLONG_ | Maximum value of unsigned long long | L | M | <limits.h> | C99 | C11 | |||||
| ULONG_ | Maximum value of unsigned long | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| USHRT_ | Maximum value of unsigned short | L | M | <limits.h> | C89 | C90 | C95 | C99 | C11 | ||
| uint16_t | Unsigned integer type of exactly 16 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| uint32_t | Unsigned integer type of exactly 32 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| uint64_t | Unsigned integer type of exactly 64 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| uint8_t | Unsigned integer type of exactly 8 bits | L | ? | T | <stdint.h> | C99 | C11 | ||||
| uint_ | Fastest unsigned integer type with at least 16 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Fastest unsigned integer type with at least 32 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Fastest unsigned integer type with at least 64 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Fastest unsigned integer type with at least 8 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Smallest unsigned integer type with at least 16 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Smallest unsigned integer type with at least 32 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Smallest unsigned integer type with at least 64 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uint_ | Smallest unsigned integer type with at least 8 bits | L | T | <stdint.h> | C99 | C11 | |||||
| uintmax_t | Largest unsigned integer type | L | T | <stdint.h> | C99 | C11 | |||||
| uintptr_t | Unsigned integer type capable of storing a pointer | L | ? | T | <stdint.h> | C99 | C11 | ||||
| union | Introduces union type | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| unsigned | Specifier for unsigned integer types | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| unsigned | Unsigned integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| unsigned
          char | Character type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| unsigned long | Unsigned integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| unsigned long long | Unsigned integer type | L | T | Native | C99 | C11 | |||||
| unsigned short | Unsigned integer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| va_ | Extract argument | L | M | (·) | <stdarg.h> | C89 | C90 | C95 | C99 | C11 | |
| va_ | Copy argument iterator | L | M | (·) | <stdarg.h> | C99 | C11 | ||||
| va_ | Release argument iterator | L | M | (·) | <stdarg.h> | C89 | C90 | C95 | C99 | C11 | |
| va_ | Argument iterator | L | T | <stdarg.h> | C89 | C90 | C95 | C99 | C11 | ||
| va_ | Initialise argument iterator | L | M | (·) | <stdarg.h> | C89 | C90 | C95 | C99 | C11 | |
| void | Empty return type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| void | Specifier for empty type, generic pointer type and empty parameter list | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| void | Empty type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| void | Empty parameter list | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| void
          * | Generic pointer type | L | T | Native | C89 | C90 | C95 | C99 | C11 | ||
| volatile | Marks unoptimizable object | L | Q | Keyword | C89 | C90 | C95 | C99 | C11 | ||
| WCHAR_ | Maximum value of wchar_t | H | M | Headers | C95 | C99 | C11 | ||||
| WCHAR_ | Minimum value of wchar_t | H | M | Headers | C95 | C99 | C11 | ||||
| WINT_ | Maximum value of wint_t | H | M | <stdint.h> | C99 | C11 | |||||
| WINT_ | Minimum value of wint_t | H | M | <stdint.h> | C99 | C11 | |||||
| wchar_t | Wide-character type | H | T | Headers | C95 | C99 | C11 | ||||
| while | Loop syntax | L | Keyword | C89 | C90 | C95 | C99 | C11 | |||
| xor | Bitwise XOR operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
| xor_eq | Bitwise XOR assignment operator | L | M | + | <iso646.h> | C95 | C99 | C11 | |||
