C23
C23 är det inofficiella namnet på nästa (efter C17 ) standard för C- språket . [1] [2] Den förväntas antas 2023 och kommer därför att kallas C23 . [3]
Förändringar sedan C17 [4]
Språkändringar
Utfasade och borttagna funktioner
- Arkitekturen måste nödvändigtvis stödja tvås komplementnummer .
- K&R -stilfunktionsdefinitioner
- Definition av dessa makron i < math.h > (flyttad ut till < limits.h >)
- OÄNDLIGHET
- DEC_INFINITY
- NAN
- DEC_NAN
- No_return attribut
- Stöd anropa realloc med 0 dimensioner (nu odefinierat beteende ).
- Makro __bool_true_false_are_defined
- Makro __alignof_is_defined och __alignas_is_defined
Innovationer
Nya förbehandlare direktiv
- #elifdef och #elifndef
- #varning
- Stöd för ISO/IEC 60559:2020, den nuvarande versionen av IEEE 754-standarden för aritmetik med flyttal
- Typerna är _Decimal 32, _Decimal64 och _Decimal128.
- _Static_assert stöd
- C++11 stilfunktionsattribut :
nodiscard
maybe_unused
deprecated
fallthrough
noreturn
reproducerbar
unsequenced
- Förbättrad aritmetik över binära och decimala tal
- Etiketter kan förekomma före deklarationer och i slutet av uttryck
- Namngivna parametrar i funktionsdeklarationer [5]
- Binära bokstaver som0b10101010
- Förbättrat konststöd med arrayer [6]
- Möjlighet att kontrollera heltalsspill
- Типы _BitInt(N)ochUnsignedBitInt(N)
- Sifferavgränsare: 0xFF'FF'FF'FF
- Operatörsstandardisering typeof(...)( typ av ) [7]
- Tom initiering med {} (inklusive VLA-initiering)
- alignas, alignof, bool, true, false, static_assert, thread_local är nu nyckelord
- pragma för avrundning av riktning
- FENV_ROUND
- FENV_DEC_ROUND
Ändringar av standardbiblioteket
Nya rubrikfiler
- Vissa POSIX-funktioner blir standard
- memccpy()
- strdup()
- strndup()
- asctime_r()
- ctime_r()
- gmtime_r()
- localtime_r()
- UTF8-stöd
- aliaschar8_t
- mbrtoc8()
- c8rtomb()
- aliasatomic_char8_t
- makroATOMIC_CHAR8_T_LOCK_FREE
- Tillägg för fscanf, fprintf
- Specifierare %bför utmatning av binära tal
- H,D,DD för _Decimal32, _Decimal64 respektive _Decimal128.
Support
Möjlighet
|
Erbjudande nr.
|
GCC
|
Klang
|
MSVC
|
_Static_assert
|
2265
|
9
|
9
|
|
Attribut
|
2554
|
tio
|
9
|
|
Decimal
|
2341
|
4,2*
|
|
|
Binära konstanter
|
2549
|
4.3
elva
|
2.9
9
|
19,0**
|
Taggar före tillkännagivande
|
2508
|
elva
|
|
Delvis*
|
__har_c_attribut
|
2553
|
elva
|
9
|
|
Sifferavgränsare
|
2626
|
12
|
13
|
19**
|
#elifdef,
#elifndef
|
2645
|
12
|
13
|
|
K&R stil funktionsdeklaration
|
2432
|
tio
|
femton
|
|
Namnlös funktionsparametrar
|
2480
|
elva
|
elva
|
|
Anteckningar
- ↑ Historien om C. cppreference . Hämtad 27 april 2022. Arkiverad från originalet 24 oktober 2020. (obestämd)
- ↑ Keaton, David WG 14 N 2086 -- C2x Charter . www.open-std.org (19 september 2016). Hämtad 3 januari 2021. Arkiverad från originalet 14 februari 2021. (obestämd)
- ↑ Reviderad C23-schema WG 14 N 2759 . www.open-std.org . Hämtad 19 juni 2021. Arkiverad från originalet 24 juni 2021. (obestämd)
- ↑ C23 - cppreference.com . en.cppreference.com . Hämtad 10 juli 2022. Arkiverad från originalet 8 juni 2022. (obestämd)
- ↑ Förslag till C2x WG14 N2480 . www.open-std.org . Hämtad 27 april 2022. Arkiverad från originalet 20 januari 2022. (obestämd)
- ↑ C2x-förslag: WG14 N2607 . www.open-std.org . Hämtad 27 april 2022. Arkiverad från originalet 9 februari 2022. (obestämd)
- ↑ Meneide, JeanHeyd Not-So-Magic - typ av(...) i C (1 januari 2022). Hämtad 25 mars 2022. Arkiverad från originalet 8 mars 2022. (obestämd)
Länkar
C programmeringsspråk |
---|
|
Kompilatorer |
|
---|
Bibliotek |
|
---|
Egenheter |
|
---|
Några ättlingar |
|
---|
C och andra språk |
|
---|
Kategori:C programmeringsspråk |