quimica - last c version
¿Qué es C17 y qué cambios se han realizado en el lenguaje? (2)
Mientras revisaba las noticias sobre GCC 8, saw que agregaban soporte para la versión 2017 del lenguaje C (no C ++ 17, realmente C17). Pero no puedo encontrar ninguna información al respecto en Internet.
¿Es una nueva versión ISO como C11, o simplemente un nombre en clave utilizado por el equipo de GCC para algunas correcciones en su compilador?
Según la referencia de
GCC
,
C17
es en realidad una
versión
de
corrección de errores
del estándar
C11
con resoluciones DR integradas.
C17 , una versión de corrección de errores del estándar C11 con resoluciones DR integradas , pronto irá a votación. Este parche agrega las opciones correspondientes
-std=c17
,-std=gnu17
(nueva versión predeterminada, reemplazando-std=gnu11
como predeterminado),-std=iso9899:2017
. Como versión de corrección de errores del estándar, no hay necesidad deflag_isoc17
ni de ninguna opción para advertencias de compatibilidad; sin embargo, hay un nuevo valor__STDC_VERSION__
, por lo que se agregan nuevos idiomasCLK_GNUC17
yCLK_STDC17
para admitir el uso de ese nuevo valor con las nuevas opciones. (Si el estándar termina siendo publicado en 2018 y se conoce comoC18
, se pueden agregar alias de opción. Sin embargo,-std=iso9899:199409
cuenta que-std=iso9899:199409
corresponde a un valor__STDC_VERSION__
lugar de una fecha de publicación).(Hay un par de resoluciones de DR que necesitan implementarse en GCC, pero eso es independiente de las nuevas opciones).
Por lo tanto, no hay nuevas características incluidas en C17.
La Cppreference (Historia de C) dice:
Desarrollo futuro
C17 La próxima revisión estándar de lenguaje C menor, incluirá todos los informes de defectos C11 aceptados, pero no nuevas características .
ACTUALIZAR:
- 2018: C17 (ISO / IEC 9899: 2018) ( ISO Store) ( Borrador final ) Incluye la desaprobación de
ATOMIC_VAR_INIT
y las correcciones a los siguientes informes de defectos:[DR 400] , [DR 401] , [DR 402] , [DR 403] , [DR 404] , [DR 405] , [DR 406] , [DR 407] , [DR 410] , [DR 412] , [DR 414] , [DR 415] , [DR 416] , [DR 417] , [DR 419] , [DR 423] , [DR 426] , [DR 428] , [DR 429] , [DR 430] , [DR 431] , [DR 433] , [DR 434] , [DR 436] , [DR 437] , [DR 438] , [DR 439] , [DR 441] , [DR 444] , [DR 445] , [DR 447] , [DR 448] , [DR 450] , [DR 452] , [DR 453] , [DR 457] , [DR 458] , [DR 459] , [DR 460] , [DR 462] , [DR 464] , [DR 465] , [DR 468] , [DR 470] , [DR 471] , [DR 472] , [DR 473] , [DR 475] , [DR 477] , [DR 480] , [DR 481] , [DR 485] , [DR 487] , [DR 491]
C17
es una "versión de corrección de errores" del estándar C, como "
MS Chaudhari
" se dio cuenta.
Sin embargo, hay información muy útil preparada por
Jens Gustedt
autor del libro
"Modern C"
.
Identificó la siguiente lista de cambios en
C17
en comparación con
C11
:
atómica : inicialización (7.17.2, 7.31.8) , requisitos de coherencia (5.1.2.4), cercas (7.17.3 p11), funciones o macros (7.17.1 p6), sin bloqueo depende del tipo (7.17.5 p3), compare exchange compara memoria y no valor (7.17.7.3) , atomic_flag (7.17.18) .
subprocesos: fallas espurias (7.26.3.5 p2, 7.26.3.6 p2, 7.26.4.5 p3) , sincronización (7.26.4 p1), almacenamiento específico de subprocesos (
tss_t
) y salida de subprocesos (7.26.5 p3, 7.26.5.5, 7.26. 6)
_Generic
(6.5.1.1), valores y calificación , reparto (6.5.4)alineación: alineación fundamental (6.2.8),
_Alignas
(6.7.5),aligned_alloc
(7.22.3.1)puntos de secuencia: expresiones completas (6.8 p4), declaradores completos (6.7..6 p3)
bucles infinitos (6.8.5 p6)
identificadores reservados (7.1.3)
errores de dominio o rango (7.12.1),
ilogb
,erfc
,lgamma
.subespecificación del
clock
(7.27.2.1)
realloc
derealloc
para talla 0 (7.22.3.5)Anexo F:
FLT_ROUNDS
(F.2 p1)Anexo K:
tmpnam_s
,snprintf_s
,sprintf_s
,vsprintf_s
,get_s
,mbstowcs_s
,wcstombs_s
,snwprintf_s
,swprintf_s
,vsnwprintf_s
,vswprint_s
,mbsrtowcs_s
,wcsrtombs_s
.
Enlace a la página principal C17 .
Además, este contenido será actualizado por
Jens
que puede seguir para actualizar aquí el
Blog de Jeans Gustedt
.
PS: before posting all this stuff I received approval from the author.