C23
C23 je neoficiální název dalšího (po C17 ) standardu jazyka C . [1] [2] Očekává se, že bude přijata v roce 2023, a proto se bude nazývat C23 . [3]
Změny od C17 [4]
Změny jazyka
Zastaralé a odstraněné funkce
- Architektura musí nutně podporovat čísla dvojkového doplňku .
- Definice funkcí stylu K&R
- Definice těchto maker v < math.h > (přesunuto do < limits.h >)
- NEKONEČNO
- DEC_INFINITY
- NAN
- DEC_NAN
- Atribut No_return
- Podpora volání realloc s 0 dimenzemi (nyní nedefinované chování ).
- Makro __bool_true_false_are_defined
- Makro __alignof_is_defined a __alignas_is_defined
Inovace
Nové direktivy preprocesoru
- #elifdef a #elifndef
- #Varování
- Podpora ISO/IEC 60559:2020, aktuální verze standardu IEEE 754 pro aritmetiku s plovoucí desetinnou čárkou
- Typy jsou _Decimal 32, _Decimal64 a _Decimal128.
- Podpora _Static_assert
- Atributy funkce stylu C++11 :
nodiscard
maybe_unused
deprecated
fallthrough
noreturn
reprodukovatelné
unsequenced
- Vylepšená aritmetika nad binárními a desetinnými čísly
- Štítky se mohou objevit před deklaracemi a na konci výrazů
- Nepojmenované parametry v deklaracích funkcí [5]
- Binární literály jako0b10101010
- Vylepšená podpora const s poli [6]
- Schopnost ovládat přetečení celého čísla
- Типы _BitInt(N)aUnsignedBitInt(N)
- Oddělovače číslic: 0xFF'FF'FF'FF
- Standardizace operátora typeof(...)( typeof ) [7]
- Prázdná inicializace s {} (včetně inicializace VLA)
- alignas, alignof, bool, true, false, static_assert, thread_local jsou nyní klíčová slova
- pragma pro směr zaoblení
- FENV_ROUND
- FENV_DEC_ROUND
Změny ve standardní knihovně
Nové hlavičkové soubory
- Některé funkce POSIX se stávají standardem
- memccpy()
- strdup()
- strndup()
- asctime_r()
- ctime_r()
- gmtime_r()
- localtime_r()
- podpora UTF8
- pseudonymchar8_t
- mbrtoc8()
- c8rtomb()
- pseudonymatomic_char8_t
- makroATOMIC_CHAR8_T_LOCK_FREE
- Rozšíření pro fscanf, fprintf
- Specifikátor %bpro výstup binárních čísel
- H,D,DD pro _Decimal32, _Decimal64 a _Decimal128.
Podpora
Možnost
|
Nabídka č.
|
GCC
|
Zvonit
|
MSVC
|
_Static_assert
|
2265
|
9
|
9
|
|
Atributy
|
2554
|
deset
|
9
|
|
Desetinný
|
2341
|
4,2*
|
|
|
Binární konstanty
|
2549
|
4.3
jedenáct
|
2.9
9
|
19,0**
|
Tagy před oznámením
|
2508
|
jedenáct
|
|
Částečně*
|
__has_c_attribute
|
2553
|
jedenáct
|
9
|
|
Oddělovače číslic
|
2626
|
12
|
13
|
19**
|
#elifdef,
#elifndef
|
2645
|
12
|
13
|
|
Deklarace funkce stylu K&R
|
2432
|
deset
|
patnáct
|
|
Nepojmenované funkční parametry
|
2480
|
jedenáct
|
jedenáct
|
|
Poznámky
- ↑ Historie C. cppreference . Získáno 27. dubna 2022. Archivováno z originálu dne 24. října 2020. (neurčitý)
- ↑ Keaton, David WG 14 N 2086 -- Charta C2x . www.open-std.org (19. září 2016). Získáno 3. ledna 2021. Archivováno z originálu dne 14. února 2021. (neurčitý)
- ↑ Revidovaný plán C23 WG 14 N 2759 . www.open-std.org . Získáno 19. června 2021. Archivováno z originálu dne 24. června 2021. (neurčitý)
- ↑ C23 - cppreference.com . en.cppreference.com . Získáno 10. července 2022. Archivováno z originálu dne 8. června 2022. (neurčitý)
- ↑ Návrh na C2x WG14 N2480 . www.open-std.org . Získáno 27. dubna 2022. Archivováno z originálu dne 20. ledna 2022. (neurčitý)
- ↑ Návrh C2x: WG14 N2607 . www.open-std.org . Získáno 27. dubna 2022. Archivováno z originálu dne 9. února 2022. (neurčitý)
- ↑ Meneide, JeanHeyd Not-So-Magic - typeof(…) v C (1. ledna 2022). Získáno 25. března 2022. Archivováno z originálu dne 8. března 2022. (neurčitý)
Odkazy
C programovací jazyk |
---|
|
Kompilátory |
|
---|
Knihovny |
|
---|
Zvláštnosti |
|
---|
Někteří potomci |
|
---|
C a další jazyky |
|
---|
Kategorie:C programovací jazyk |