- La edición C23 de Modern C se puede descargar gratis. Su objetivo principal es actualizarse en línea con C23, el nuevo estándar de C.
- El contenido del nuevo estándar se presenta en la forma más cercana posible a los documentos públicos. La mayoría de las nuevas funciones de los compiladores principales ya están implementadas.
Principales cambios y adiciones de C23
- Cambios relacionados con enteros: introducción de un nuevo tipo de precisión de bits llamado
_BitInt(N), un nuevo encabezado de la biblioteca estándar de C para verificar desbordamientos, adición de un encabezado para manipulación de bits, posibilidad de tipos de 128 bits en arquitecturas modernas y mejoras significativas en los tipos de enumeración.
- Nuevos conceptos: la constante
nullptr y su tipo base, anotaciones sintácticas mediante atributos, más herramientas para programación genérica por tipos (por ejemplo, inferencia de tipos con auto y typeof), inicialización predeterminada con {} (incluyendo arreglos de longitud variable) y constexpr para constantes con nombre de todos los tipos.
- Material adicional: se añadieron discusiones sobre expresiones compuestas y lambdas, así como sobre un enfoque integral ante fallas de programa llamado "internacionalización". También se agregaron encabezados temporales de inclusión y apéndices para facilitar la transición a C23 en plataformas existentes.
Resumen de GN⁺
- La edición C23 de Modern C fue actualizada para reflejar el nuevo estándar de C, y muchas de sus funciones ya están implementadas en los compiladores principales.
- C23 ofrece mejoras importantes en tipos enteros, programación genérica por tipos e inicialización predeterminada.
- Esta edición es útil para comprender y aprovechar el estándar más reciente del lenguaje de programación C, especialmente para desarrolladores que quieran adoptar rápidamente las nuevas funciones.
- Entre otros lenguajes con funciones similares a C23 se encuentra el estándar más reciente de C++.
1 comentarios
Opiniones de Hacker News
#embedcuando los compiladores se pongan al día. Hasta entonces, uso Golang[[__unsequenced__]],[[maybe_unused]],[[noreturn]]. Siento que el autor exageró al poner en todos los ejemplos de código algo que podría usarse de forma opcional