C23
The next generation of the C standard.
See: The current IS schedule for C23.
Obsolete
Removed
- Old-style function declarations and definitions
- Representations for signed integers other than two's complement
- Permission that
u
/U
-prefixed character constants and string literals may be not UTF-16/32 - Mixed wide string literal concatenation
- Support for calling
realloc()
with zero size (the behavior becomes undefined)
Deprecated
- Old feature-test macros
-
DECIMAL_DIG
- Definition of following numeric limit macros in
<math.h>
(they should be used via<limits.h>
) -
_Noreturn
function specifier -
_Noreturn
attribute token
New language features
- Decimal floating-point types (
_Decimal32
,_Decimal64
, and_Decimal128
) - Binary integer constants
-
u8
character constants - Digit separator
'
- Empty initializer
= {}
- Attributes
-
[[deprecated]]
-
[[fallthrough]]
-
[[maybe_unused]]
-
[[nodiscard]]
-
- Unnamed parameters in function definitions
- Identical cvr-qualifcations for array types and their element types
- Single-argument
_Static_assert
- Labels followed by declarations and
}
- New preprocessor directives
- Pragmas for rounding direction
-
STDC
FENV_ROUND
-
STDC
FENV_DEC_ROUND
-
Feature test macros for optional features
-
__STDC_IEC_60559_BFP__
- Indicates IEEE-754 binary floating-point arithmetic and required math functions are supported.
__STDC_IEC_559__
. -
__STDC_IEC_60559_DFP__
- Indicates IEEE-754 decimal floating-point arithmetic and required math functions are supported.
-
__STDC_IEC_60559_COMPLEX__
- Indicates IEEE-754 complex arithmetic and required math functions are supported.
__STDC_IEC_559_COMPLEX__
.
New library features
- Extended binary floating-point math functions
- Decimal floating-point math functions
- -
dN
variants for existing and new floating-point math functions -
quantizedN()
-
samequantumdN()
-
quantumdN()
-
llquantexpdN()
-
encodedecdN()
-
decodedecdN()
-
encodebindN()
-
decodebindN()
- -
- Floating-point formatting functions
- Library support for UTF-8
- POSIX functions
-
memccpy()
-
strdup()
-
strndup()
-
asctime_r()
-
ctime_r()
-
gmtime_r()
-
localtime_r()
- Extensions for
strftime()
andwcsftime()
-
- Extensions for
fscanf()
andfprintf()
function families-
wN
andwfN
length modifiers for[u]intN_t
and[u]int_fastN_t
respectively -
H
,D
, andDD
length modifiers for_Decimal32
,_Decimal64
, and_Decimal128
respectively -
b
conversion specifier for unsigned integer types
-
-
timespec_getres()
- Macro constants for width of integer types
- Additional numeric limit macros for floating-point types
- Library version-test macros
Defect reports
Defect Reports fixed in C23 (? defects) |
---|
Compiler support
Template:c/compiler support/23.
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/23