C23, formalment ISO/IEC 9899:2024, és l'estàndard obert actual per al llenguatge de programació C, que substitueix C17 (estàndard ISO/IEC 9899:2018). Es va iniciar l'any 2016 de manera informal com a C2 i es va publicar el 31 d'octubre de 2024. L'esborrany de lliure disposició més semblant al publicat és el document N3220 (vegeu Textos disponibles, més avall). La primera reunió del WG14 per a l'esborrany de C2x es va celebrar l'octubre de 2019, es van celebrar reunions remotes virtuals l'any 2020 a causa de la pandèmia de COVID-19, després es van mantenir diverses reunions de teleconferència fins al 2024.

A C23, el valor de __STDC_VERSION__ canvia de 201710L a 202311L. Els noms comuns "C17" i "C23" reflecteixen aquests valors, que estan congelats abans de l'adopció final, en lloc dels anys dels identificadors de les normes ISO (9899:2018 i 9899:2024).

Característiques A continuació s'enumeren els canvis integrats a l'últim esborrany de treball del C23.

Biblioteca estàndard Noves funcions * la funció memset_explicit() a <string.h> per esborrar dades sensibles, on l'emmagatzematge de memòria sempre s'ha de realitzar independentment de les optimitzacions.

* la funció memccpy() a <string.h> per concatenar de manera eficient cadenes, de manera similar a les extensions C POSIX i SVID.

* funcions strdup() i strndup() a <string.h> per assignar una còpia d'una cadena, de manera similar a les extensions C POSIX i SVID.

* la funció memalignment() a <stdlib.h> per determinar l'alineació de bytes d'un punter.

* funcions d'utilitat de bits / macros / tipus a la nova capçalera <stdbit.h> per examinar molts tipus d'enters. Tots comencen amb stdc_ per minimitzar el conflicte amb el codi heretat i les biblioteques de tercers.

Funcions exixtents * l'especificador de conversió binària %b a la família de funcions printf().

* l'especificador de conversió binària %b a la família de funcions scanf().

* suport de conversió binària 0b i 0B a les famílies de funcions strtol() i wcstol().

* les funcions bsearch(), bsearch_s(), memchr(), strchr(), strpbrk(), strrchr(), strstr() i els seus homòlegs amples wmemchr(), wcschr(), wcspbrk(), wcsrchr() , wcsstr() retorna un objecte qualificat const si se'n passa un.

Suport de compiladors Els compiladors següents implementen un indicador de compilador experimental per donar suport a aquest estàndard:

GCC 9

Clang 9.0

Pelles C 11.00

Referències

Categoria:Llenguatge de programació C