GCC 15 Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° стандарт C23 ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅

Π’ ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π°, Π½Π° основата Π½Π° която Ρ‰Π΅ сС ΠΈΠ·Π³ΠΎΡ‚Π²ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ Π·Π° ΠΏΡ€ΠΎΠ»Π΅Ρ‚Ρ‚Π° Π½Π° слСдващата Π³ΠΎΠ΄ΠΈΠ½Π° ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ GCC 15, Π΅ ΠΏΡ€ΠΈΠ΅Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° стандарта C23 с Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ GNU (Β«-std=gnu23Β») ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ Π½Π° Π΅Π·ΠΈΠΊΠ° C (ΠΏΠΎ-Ρ€Π°Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС използвашС ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚ΡŠΡ‚ C17 β€” Β«-std=gnu17Β»). Π˜Π·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π² новия стандарт ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΠΊΠΈ, ΠΊΠ°Ρ‚ΠΎ добавянС Π½Π° константата nullptr, Ρ‚ΠΈΠΏΠ° _BitInt(n) ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ bool, true ΠΈ false, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ²Π°Ρ‚ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ‚Π΅ Π² прилоТСнията ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ със ΡΡŠΡ‰ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Π½Π°.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΡŠΡ‚ C23 (ISO/IEC 9899:2024) бСшС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ ΠΎΡ‚ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Π°Ρ‚Π° организация ΠΏΠΎ стандартизация (ISO) Π½Π° 31 ΠΎΠΊΡ‚ΠΎΠΌΠ²Ρ€ΠΈ 2024 Π³ΠΎΠ΄ΠΈΠ½Π°. Π‘Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² новия стандарт:

  • ΠŸΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° опрСдСлянС Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² стил K&R C, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π΄ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅Ρ‚ΠΎ Π½Π° спСцификацията ANSI C ΠΈ описан Π² ΠΊΠ½ΠΈΠ³Π°Ρ‚Π° Β«The C Programming LanguageΒ» Π½Π° ΠšΠ΅Ρ€Π½ΠΈΠ³Π°Π½ ΠΈ Π ΠΈΡ‚Ρ‡ΠΈ. Π‘Ρ‚ΠΈΠ»ΡŠΡ‚ K&R ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π° описаниС Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ слСд опрСдСлянСто Π½Π° функцията, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«int add(a, b) int a, b; {}Β».
  • НСимСнуванитС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ β€” нСобязатСлност Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΈ опрСдСлянСто Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΊΠ°ΠΊΡ‚ΠΎ Π² C++). НапримСр, сСга ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Β«int f(int, int) { return 7; }Β».
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° синтаксиса Β«[[ΠΈΠΌΠ΅]]Β» Π·Π° опрСдСлянС Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ Π² C++ (Β«[[gnu::const]]Β», Β«[[deprecated]]Β», Β«[[fallthrough]]Β», Β«[[maybe_unused]]Β», Β«[[nodiscard]]Β», Β«[[noreturn]]Β», Β«[[reproducible]]Β», Β«[[unsequenced]]Β»). НапримСр, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΡŠΡ‚ [[noreturn]] позволява Π΄Π° se ΡƒΠΊΠ°Π·Π²Π°, Ρ‡Π΅ функцията Π½Π΅ Π²Ρ€ΡŠΡ‰Π° стойности (заглавният Ρ„Π°ΠΉΠ» stdnoreturn.h ΠΈ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΡŠΡ‚ Β«_NoreturnΒ» са обявСни Π·Π° остарСли).
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° синтаксиса u8Β» Π·Π° опрСдСлянС Π½Π° константи със символи Π² UTF-8.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Ρ‚ΠΈΠΏΡŠΡ‚ char8_t Π·Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΈ символи Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π° UTF-8, Π° ΡΡŠΡ‰ΠΎ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ с ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΈ символи mbrtoc8() ΠΈ c8rtomb().
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Π½ΠΎ Π΅ дСйствиСто Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π°Ρ‚Π° Π΄ΡƒΠΌΠ° Β«autoΒ», която сСга Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΈΠ·Π²ΠΎΠ΄ Π½Π° Ρ‚ΠΈΠΏ ΠΏΡ€ΠΈ опрСдСлянС Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ° Β«autoΒ» вмСсто Ρ‚ΠΈΠΏ Π·Π° опрСдСлянС Π½Π° Ρ‚ΠΈΠΏΠ° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ въз основа Π½Π° Ρ‚ΠΈΠΏΠ° Π½Π° ΠΈΠ·Ρ€Π°Π·Π° Π·Π° тяхното ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅. НапримСр: Β«auto y = cos(x);Β».
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ с ΠΏΡ€Π°Π·Π΅Π½ списък ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ сСга сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π·Π°Π³Π»Π°Π²Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ <stdckdint.h> ΠΈ <stdbit.h> с макроси, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ†Π΅Π»ΠΈ числови прСсмятания.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΅ поставянСто Π½Π° ΠΏΡ€Π΅Ρ…ΠΎΠ΄Π½ΠΈ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ мСста Π² ΡΡŠΡΡ‚Π°Π²Π½ΠΈ ΠΈΠ·Ρ€Π°Π·ΠΈ.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ‚Ρ€ΠΈΠ³Ρ€Π°Ρ„ΠΈ Π² ΠΊΠΎΠ΄Π° Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½Π°. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚Ρ€ΠΈ ASCII символа, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ Π΅Π΄ΠΈΠ½ символ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ послСдоватСлността Β«??=Β», ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ вмСсто Β«#Β». Π‘Π»Π΅Π΄ появата Π½Π° Unicode ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Ρ‚Ρ€ΠΈΠ³Ρ€Π°Ρ„ΠΈ Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠ»Π° смисъл.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° прСфикси Β«0bΒ» ΠΈ Β«0BΒ» Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° цСлочислСни стойности Π² Π΄Π²ΠΎΠΈΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Β«int b = 0b101010Β».
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈΡ‚Π΅ Π΄ΡƒΠΌΠΈ bool, static_assert, alignas, alignof ΠΈ thread_local.
  • Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π΅ Π·Π°Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π°Π·Π½ΠΈ скоби Β«{}Β» Π·Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ стойности, Ρ‚.Π΅. Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС пишС Β«struct S { int x, y } s = {};Β».
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° всякакви унивСрсални ΠΈΠΌΠ΅Π½Π° Π½Π° символи Π² символни ΠΈ стрингови Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΈ. НапримСр, Β«int \u0024 = 0;Β».
  • Π’ Β«stddef.hΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ макрос Β«unreachableΒ».
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² Ρ‚ΠΈΠΏ nullptr_t ΠΈ константа nullptr Π·Π° опрСдСлянС Π½Π° Π½ΡƒΠ»Π΅Π²ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚ Π² всСки Ρ‚ΠΈΠΏ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ Π΄Π° прСдставят Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ NULL, ΠΊΠΎΠΉΡ‚ΠΎ Π½Π΅ Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с Ρ†Π΅Π»ΠΈ числови Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΈ Ρ‚ΠΈΠΏ void*. НапримСр, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡƒΠΊΠ°Π·Π²Π° Β«void func(nullptr_t); func(0); func((void *)0);Β».
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Β«_BitInt (N)Β» ΠΈ Β«unsigned _BitInt (N)Β» Π·Π° опрСдСлянС Π½Π° Ρ†Π΅Π»ΠΈ числа с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π±Ρ€ΠΎΠΉ Π±ΠΈΡ‚ΠΎΠ²Π΅, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ дСсСтични Ρ‚ΠΈΠΏΠΎΠ²Π΅ с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая Β«_Decimal32Β», Β«_Decimal64Β» ΠΈ Β«_Decimal128Β» ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° символа Β«β€˜Β» Π·Π° ясно раздСлянС Π½Π° разрядитС Π² числата (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«1’000’000Β»).
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈ, обСдинСния ΠΈ изброявания ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС опрСдСлят ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ вСднъТ Π² Π΅Π΄Π½Π° ΠΈ ΡΡŠΡ‰Π° видимост с Π΅Π΄Π½ΠΎ ΠΈ ΡΡŠΡ‰ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ ΠΈ повтарящ сС Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚.
  • Π’ стандарт са Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ typeof ΠΈ typeof_unqual.
  • Появила сС Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° спСцификатора constexpr Π·Π° опрСдСлянС Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.
  • Π’ Π·Π°Π³Π»Π°Π²Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ float.h ΠΈ math.h са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ макроситС INFINITY, NAN, FLT_NORM_MAX, DBL_NORM_MAX ΠΈ LDBL_NORM_MAX.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ Π½Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‡Π° #elifdef, #elifndef, #warning ΠΈ #embed. Β«#embedΒ» Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΈΠ½Π°Ρ€Π½ΠΈ рСсурси.
  • Π£ΠΏΡ€ΠΎΡ‰Π΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΠΏΠΈΡΡŠΡ†ΠΈ с ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ² Π±Ρ€ΠΎΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ (variadic).
  • Π Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ са Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° изброяванията (enum).
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° замСстванС Π½Π° Β«%bΒ» Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΈ стойности Π² сСмСйствата Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ printf() ΠΈ scanf().
  • Π’ΠΈΠΊΡŠΡ‚ Π½Π° функцията realloc() с Π½ΡƒΠ»Π΅Π² Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² катСгория Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.
  • Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ memccpy(), strdup(), strndup(), gmtime_r() ΠΈ localtime_r().
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ asctime() ΠΈ ctime() са обявСни Π·Π° остарСли.
  • ΠœΠ°ΠΊΡ€ΠΎΡΠΈΡ‚Π΅ static_assert ΠΈ thread_local са прСмСстСни Π² катСгорията ΠΊΠ»ΡŽΡ‡ΠΎΠ²ΠΈ Π΄ΡƒΠΌΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster