Namespaces
Variants

C compiler support

From es.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 Sí Sí 6.5 2021.1.2 (clang based)
[[ nodiscard ]] N2267 10 9 Sí 6.4 2021.1.2 (clang based)
[[ maybe_unused ]] N2270 10 9 Sí 6.4 2021.1.2 (clang based)
[[ deprecated ]] N2334 10 9 Sí 6.4 2021.1.2 (clang based)
Atributos N2335
N2554
10 9 Sí 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 Sí 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 Sí 6.4 2021.1.2 (clang based)
Parámetros sin nombre en definiciones de función N2480 11 11 Sí 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)* * Sí 6.5 11.0 *
__has_c_attribute en condicionales del preprocesador N2553 11 9 Sí 6.5 2021.1.2 (clang based)
Permitir atributos duplicados N2557 11 13 Sí 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)* * Sí 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 Sí Sí Sí 6.5 Sí
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 Sí 19.11* Sí 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 Sí Sí
Límites de traducción incrementados translation limits N590 0.9 N/A
// comentarios N644 2.7 Sí Sí
restrict punteros N448 2.95 Sí parcial *
Tipos aritméticos mejorados N815
N601
N620
N638
N657
N694
N809
Sí parcial Quizás
Miembros de array flexibles 3.0 Sí Sí
Arreglo de longitud variable (VLA) tipos N683 0.9 Sí
Tipos modificables variables (VM) N2778 N/A Sí
Inicializadores designados N494 3.0 Sí Sí
Inicializadores no constantes 1.21 N/A
Calificadores cvr idempotentes N505 3.0 N/A
Coma final en enumerator-list 0.9 Sí Sí
Hexadecimal constantes de punto flotante N308 2.8 Sí Sí
Literales compuestos N716 3.1 Sí Sí
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 Sí Sí Sí
Declaraciones y sentencias en orden mixto N740 3.0 Sí Sí
init-statement en bucles for Sí Sí Sí
inline funciones N741 4.3 Sí Sí
Variable predefinida __func__ N611 2.95 Sí Sí
Calificadores cv y static en [ ] dentro de declaraciones de función 3.1 Sí
Macros variádicos N707 2.95 Sí Sí
_Pragma operador de preprocesador N634 3.0 Sí 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