Namespaces
Variants

C compiler support

From cppreference.net
< c

Contenidos

Características de C23

Tenga en cuenta que esta lista puede cambiar, a medida que evoluciona el borrador del estándar C23/2x.

Características principales del lenguaje C23

Característica de C23

Documento(s)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
static_assert sin mensaje N2265 9 9 6.5 2021.1.2 (clang based)
[[ nodiscard ]] N2267 10 9 6.4 2021.1.2 (clang based)
[[ maybe_unused ]] N2270 10 9 6.4 2021.1.2 (clang based)
[[ deprecated ]] N2334 10 9 6.4 2021.1.2 (clang based)
Atributos N2335
N2554
10 9 6.4 2021.1.2 (clang based)
Tipos de coma flotante decimal IEEE 754 N2341 4.2 (parcial)*
12
13.0 (parcial)*
[[ fallthrough ]] N2408 10 9 6.4 2021.1.2 (basado en clang)
u8 constantes de carácter N2418 10 15 6.5 2022.2
Eliminación de function definitions sin prototipo N2432 10 15 2022.2
[[ nodiscard ]] con mensaje N2448 11 10 6.4 2021.1.2 (clang based)
Parámetros sin nombre en definiciones de función N2480 11 11 6.4 2021.1.2 (clang based)
Etiquetas antes de declaraciones y final de bloques N2508 11 16 Parcial* 6.5 17.0 *
Constantes enteras binarias N2549 4.3 *
11
2.9 *
9
19.0 (2015)* * 6.5 11.0 *
__has_c_attribute en condicionales del preprocesador N2553 11 9 6.5 2021.1.2 (clang based)
Permitir atributos duplicados N2557 11 13 6.5 2021.4 (basado en clang
Tipos de intercambio y extendidos IEEE 754 N2601 7 (parcial)*
14
6 (parcial)* Parcial*
Separadores de dígitos N2626 12 13 19.0 (2015)* * 6.5 18.0 *
#elifdef y #elifndef N2645 12 13 19.40* 13.1.6* 6.5 2021.4
Cambio de tipo de u8 literales de cadena N2653 13
[[ maybe_unused ]] para etiquetas N2662 11 16 6.5 2022.2
#warning N2686 6.5
Tipos enteros de precisión de bits ( _BitInt ) N2763 14 (parcial)* 15 6.5 2022.2
[[ noreturn ]] N2764 13 15 6.5 2022.2
Sufijos para constantes enteras de precisión de bits N2775 14 15 2022.2
__has_include en condicionales del preprocesador N2799 5 19.11* 6.5 18.0
Sintaxis de Identificadores usando el Anexo 31 del Estándar Unicode N2836 13 15 6.5 2022.2
Eliminación de declaraciones de función sin prototipo N2841 13 15 2022.2
Inicializadores vacíos N2900 Parcial*
13
Parcial* Parcial* Parcial* Parcial*
typeof y typeof_unqual N2927
N2930
Parcial*
13
Parcial*
16
19.39* Parcial* Parcial* Parcial* Parcial*
Nueva ortografía de palabras clave N2934 13 16 6.5
Predefinidos true y false N2935 13 15 2022.2
[[ unsequenced ]] y [[ reproducible ]] N2956 15
Relajar requisitos para lista de parámetros variádicos N2975 13 16 6.5 2023.1
Inferencia de tipos en definiciones de objetos N3007 13 18
#embed N3017 15 19
constexpr objetos N3018 13 19
Enumeraciones Normales Mejoradas N3029 13 20 *
Enumeraciones con tipos subyacentes fijos N3030 13 20 *
__VA_OPT__ N3033 8
13
12 19.39* 6.5
Especificadores de clase de almacenamiento para literales compuestos N3038 13
nullptr N3042 13 16


Característica de C23


Documento(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

Características de la biblioteca C23

Características de C99

Características principales del lenguaje C99

Característica de C99

Documento(s)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Nombres de caracteres universales en identificadores 3.1
Límites de traducción incrementados translation limits N590 0.9 N/A
// comentarios N644 2.7
restrict punteros N448 2.95 parcial *
Tipos aritméticos mejorados N815
N601
N620
N638
N657
N694
N809
parcial Quizás
Miembros de array flexibles 3.0
Arreglo de longitud variable (VLA) tipos N683 0.9
Tipos modificables variables (VM) N2778 N/A
Inicializadores designados N494 3.0
Inicializadores no constantes 1.21 N/A
Calificadores cvr idempotentes N505 3.0 N/A
Coma final en enumerator-list 0.9
Hexadecimal constantes de punto flotante N308 2.8
Literales compuestos N716 3.1
Entorno de punto flotante parcial parcial
Requiriendo truncamiento para divisiones de tipos enteros con signo N617 0.9 N/A
Retorno implícito return 0 ; en la main() función
Declaraciones y sentencias en orden mixto N740 3.0
init-statement en bucles for
inline funciones N741 4.3
Variable predefinida __func__ N611 2.95
Calificadores cv y static en [ ] dentro de declaraciones de función 3.1
Macros variádicos N707 2.95
_Pragma operador de preprocesador N634 3.0 parcial *
Pragmas estándar para evaluación de punto flotante N631
N696
No No


Característica de C99


Documento(s)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray


Véase también

Documentación de C++ para soporte del compilador