C23
C23 este numele neoficial al următorului standard (după C17 ) al limbajului C. [1] [2] Este de așteptat să fie adoptat în 2023 și, prin urmare, se va numi C23 . [3]
Modificări de la C17 [4]
Schimbări de limbă
Caracteristici depreciate și eliminate
- Arhitectura trebuie să suporte în mod necesar numerele de complement doi.
- Definiții ale funcției de stil K&R
- Definiția acestor macrocomenzi în < math.h > (mutat în < limits.h >)
- INFINIT
- DEC_INFINITY
- NAN
- DEC_NAN
- Atributul No_return
- Suportă apelarea realloc cu 0 dimensiuni ( comportament nedefinit acum ).
- Macro-urile __bool_true_false_are_defined
- Macro-ul __alignof_is_defined și __alignas_is_defined
Inovații
Noi directive de preprocesor
- #elifdef și #elifndef
- #avertizare
- Suport pentru ISO/IEC 60559:2020, versiunea actuală a standardului IEEE 754 pentru aritmetica în virgulă mobilă
- Tipurile sunt _Decimal 32, _Decimal64 și _Decimal128.
- Suport _static_assert
- Atributele funcției de stil C++11 :
nodiscard
maybe_unused
deprecated
fallthrough
noreturn
reproductibilă
unsequenced
- Aritmetică îmbunătățită față de numerele binare și zecimale
- Etichetele pot apărea înaintea declarațiilor și la sfârșitul expresiilor
- Parametri nenumiți în declarațiile de funcție [5]
- Literale binar ca0b10101010
- Suport const îmbunătățit cu matrice [6]
- Abilitatea de a controla depășirea întregului
- Типы _BitInt(N)șiUnsignedBitInt(N)
- Separatoare de cifre: 0xFF'FF'FF'FF
- Standardizare operator typeof(...)( tip de ) [7]
- Inițializare goală cu {} (inclusiv inițializarea VLA)
- alignas, alignof, bool, true, false, static_assert, thread_local sunt acum cuvinte cheie
- pragma pentru direcția de rotunjire
- FENV_ROUND
- FENV_DEC_ROUND
Modificări ale bibliotecii standard
Fișiere antet noi
- Unele funcții POSIX devin standard
- memccpy()
- strdup()
- strndup()
- asctime_r()
- ctime_r()
- gmtime_r()
- localtime_r()
- Suport UTF8
- aliaschar8_t
- mbrtoc8()
- c8rtomb()
- aliasatomic_char8_t
- macroATOMIC_CHAR8_T_LOCK_FREE
- Extensii pentru fscanf, fprintf
- Specificator %bpentru ieșirea numerelor binare
- H,D,DD pentru _Decimal32, _Decimal64 și, respectiv, _Decimal128.
Suport
Posibilitate
|
Oferta nr.
|
GCC
|
Zăngăni
|
MSVC
|
_Aserțiune_statică
|
2265
|
9
|
9
|
|
Atribute
|
2554
|
zece
|
9
|
|
Zecimal
|
2341
|
4,2*
|
|
|
Constante binare
|
2549
|
4.3
unsprezece
|
2.9
9
|
19,0**
|
Etichete înainte de anunț
|
2508
|
unsprezece
|
|
Parţial*
|
__are_c_atribut
|
2553
|
unsprezece
|
9
|
|
Separatoare de cifre
|
2626
|
12
|
13
|
19**
|
#elifdef,
#elifndef
|
2645
|
12
|
13
|
|
Declarație de funcție în stil K&R
|
2432
|
zece
|
cincisprezece
|
|
Parametrii funcției fără nume
|
2480
|
unsprezece
|
unsprezece
|
|
Note
- ↑ Istoria lui C. cppreferință . Preluat la 27 aprilie 2022. Arhivat din original la 24 octombrie 2020. (nedefinit)
- ↑ Keaton, David WG 14 N 2086 -- Carta C2x . www.open-std.org (19 septembrie 2016). Preluat la 3 ianuarie 2021. Arhivat din original la 14 februarie 2021. (nedefinit)
- ↑ Programul C23 revizuit WG 14 N 2759 . www.open-std.org . Preluat la 19 iunie 2021. Arhivat din original la 24 iunie 2021. (nedefinit)
- ↑ C23 - cppreference.com . en.cppreference.com . Preluat la 10 iulie 2022. Arhivat din original la 8 iunie 2022. (nedefinit)
- ↑ Propunere pentru C2x WG14 N2480 . www.open-std.org . Preluat la 27 aprilie 2022. Arhivat din original la 20 ianuarie 2022. (nedefinit)
- ↑ Propunerea C2x: WG14 N2607 . www.open-std.org . Preluat la 27 aprilie 2022. Arhivat din original la 9 februarie 2022. (nedefinit)
- ↑ Meneide, JeanHeyd Not-So-Magic - typeof(…) in C (1 ianuarie 2022). Preluat la 25 martie 2022. Arhivat din original la 8 martie 2022. (nedefinit)
Link -uri
limbaj de programare C |
---|
|
Compilatoare |
|
---|
Biblioteci |
|
---|
Particularități |
|
---|
Unii descendenți |
|
---|
C și alte limbi |
|
---|
Categorie: limbaj de programare C |