Actualmente estoy leyendo un borrador de la especificación C11. Las nuevas palabras clave introducidas: _Bool, _Alignof, _Atomic
todas parecen extensiones personalizadas, en lugar de palabras clave reservadas estándar como struct, union, int
.
Me doy cuenta de que el estándar básicamente consiste en extensiones estandarizadas ... ¡pero aún así, esto es horrible! ¡Quizás pronto terminemos __Long_Long_Reallylong_Integer_MSVC_2020_t
arrastrándonos en el estándar!
¿Es la compatibilidad con versiones anteriores de código no estándar la única razón del nuevo estilo de las palabras clave?
<stdbool.h>
archivo de encabezado de implementación C11 debe incluir una macro de preprocesador como #define bool _Bool
. Esta es una solución ordenada, ya que conserva la compatibilidad con versiones anteriores, pero permite que cualquier código nuevo, que incluye el nuevo archivo de encabezado, utilice la sintaxis más atractiva.