Qu'est-ce que C17 et quels changements ont été apportés à la langue?




les modifications ont été faites (2)

Alors que je vérifiais les nouvelles de GCC 8, j'ai saw qu'ils ajoutaient un support pour la version 2017 du langage C (pas C ++ 17, vraiment C17). Mais je ne trouve aucune information à ce sujet sur Internet.

S'agit-il d'une nouvelle version ISO telle que C11 ou juste d'un nom de code utilisé par l'équipe de GCC pour certaines corrections dans leur compilateur?


Selon la référence GCC , C17 est en fait une version C11 les C11 standard C11 avec les résolutions DR intégrées.

C17 , une version corrigeant les erreurs du standard C11 avec les résolutions DR intégrées , sera bientôt mise aux voix. Ce correctif ajoute les options correspondantes -std=c17 , -std=gnu17 (nouvelle version par défaut, remplaçant -std=gnu11 par défaut), -std=iso9899:2017 . En tant que version corrective de bogues de la norme, flag_isoc17 et les options d’avertissement de compatibilité ne sont pas nécessaires; Cependant, il existe une nouvelle valeur __STDC_VERSION__ ; les nouveaux langages CLK_GNUC17 et CLK_STDC17 sont donc ajoutés pour prendre en charge l’utilisation de cette nouvelle valeur avec les nouvelles options. (Si la norme finit par être publiée en 2018 et connue sous le nom de C18 , des alias d'options peuvent être ajoutés. Notez toutefois que -std=iso9899:199409 correspond à une valeur __STDC_VERSION__ plutôt qu'à une date de publication.)

(Quelques résolutions de DR doivent être mises en œuvre dans GCC, mais elles ne dépendent pas des nouvelles options.)

Donc, il n'y a pas de nouvelles fonctionnalités incluses dans C17.

La référence (Histoire de C) dit:

Développement futur

C17 Prochaine révision mineure standard du langage C, comprendra tous les rapports de défaut C11 acceptés, mais pas de nouvelles fonctionnalités .

METTRE À JOUR:

  • 2018: C17 (ISO / IEC 9899: 2018) ( ISO Store) ( Projet final ) Inclut la dépréciation d' ATOMIC_VAR_INIT et les corrections ATOMIC_VAR_INIT aux rapports de défauts suivants:

[DR 400] , [DR 401] , [DR 402] , [DR 403] , [DR 404] , [DR 405] , [DR 406] , [DR 407] , [DR 407] , [DR 412] , [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 est une «version corrigée» du standard C comme l’a remarqué « MS Chaudhari ». Cependant, il existe des informations très utiles préparées par Jens Gustedt l'auteur du livre "Modern C" .

Il a identifié la liste suivante des modifications de C17 par rapport à C11 :

Lien vers la page principale C17 .

En outre, ce contenu sera mis à jour par Jens vous pouvez suivre pour mettre à jour ici Jeans Gustedt Blog .

PS: before posting all this stuff I received approval from the author.





c17