36 votes

Derniers changements en C11

C1x est devenu la norme ISO/IEC 9899:2011 aka C11.

Personne ne sait quels sont les changements (le cas échéant) il y a dans la Norme à partir du mois d'avril 2011 projet de n1570?

ETA: Il y a le procès-verbal du Comité de Londres (Mars 2011) (ce qui devrait être inclus dans n1570) ici, et de Washington, DC (octobre 2011) ici; je suppose qu'une liste de accepté la modification des DC procès-verbal doit couvrir des choses.

16voto

Keith Thompson Points 85120

Je viens d'apprendre aujourd'hui qu'il y a eu (un peu) de changement significatif entre N1570 et la finale C11 norme (ISO/IEC 9899:2011 (E)).

Dans N1570, 6.3.2p3 dit:

Sauf quand c'est l'opérande de l' sizeof de l'opérateur, l' _Alignof l'opérateur, ou unaire & de l'opérateur ou est un littéral de chaîne utilisé pour initialiser un tableau, une expression qui a le type "tableau de type" est converti à une expression de type "pointeur de type" que les points de pour le premier élément de l'objet de tableau et n'est pas une lvalue.

L'inclusion d' _Alignof a été une erreur, puisque la syntaxe d'un unaire-expression de permis

_Alignof ( type-name )

mais pas

_Alignof unary-expression

Publié le C11 standard corrige cette erreur et revient à la C99 libellé:

Sauf quand c'est l'opérande de l' sizeof de l'opérateur, ou le unaire & de l'opérateur ou est un littéral de chaîne utilisée pour initialiser un tableau, un expression de type "tableau de type" est converti en un expression de type "pointeur de type" qui pointe à la première élément de l'objet tableau et n'est pas une lvalue.

Plus d'informations: dans une récente publication de comp.std.c sur les différences entre les N1570 et l'a publié la norme, Larry Jones, membre de l'ISO C comité, a écrit:

Il y a un certain nombre d'entre eux, mais la plupart sont simplement rédactionnelles mineures réglages, modifications de texte standard, et traînant les choses pour garder le les pouvoirs que d'être heureux. Le changement le plus important a été de retirer _Alignof à partir d'un des tas d'endroits, il ne devrait pas avoir été ajouté (basé sur le erronée notion qu'il faut être soit un type ou une expression comme sizeof n' quand il ne prend vraiment un type): 6.3.2.1p2, p3, p4, fn. 65; et 6.7.1 fn. 121.

Message-ID: <rfg33a-u0q.ln1@jones.homeip.net>

Voici le fil comme on le voit sur groups.google.com.

5voto

J. C. Salomon Points 1542

Réponse de Jens Gustedt dans les commentaires:

Selon un commentaire de Larry Jones sur comp.std.c il n'y avait pas de changements significatifs de N1569 (qui est N1570 sans marqueurs de changement). La seule chose qui reste non résolue est la valeur pour , mais je suppose le plus naturellement qu'il sera .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X