2011-04-15 7 views
5

Que signifie la note de bas de page citée dans le titre? Il est une note relative à 6.10.3p11C99, "Malgré le nom, une directive non-directive est une directive de pré-traitement."

S'il y a des séquences de jetons de pré-traitement dans la liste des arguments qui seraient autrement agir comme directives de pré-traitement, 147) le comportement est indéfini.

j'ai vérifié et trouvé

Une directive de pré-traitement consiste en une séquence de jetons de pré-traitement qui commence par un jeton # de pré-traitement que ...

et je n'ai pas trouvé le non-directive non-terminal correspondant à cette syntaxe. Il peut, mais ne doit pas, commencer par un jeton de prétraitement #. Donc ne devrions-nous pas dire ce qui suit?

"Malgré le nom, une directive de pré-traitement est non directive."

De plus, quel est le but de cette note de bas de page?

+0

Dans le cas où cela aide quelqu'un (cela ne m'a certainement pas aidé), il a été ajouté dans TC2. –

+0

Peut-être que la note de bas de page aurait dû indiquer "Malgré le nom, une directive * non directive * peut être une directive de prétraitement". Je ne sais toujours pas l'intention/justification de la note de bas de page. –

+0

Un * non-directive * n'est pas simplement un élément qui n'est pas une directive. Un * non-directive * est quelque chose sur une ligne commençant par '#' qui ne commence par aucun des noms de directive donnés dans la syntaxe. Peut-être que quelque chose comme * non-reconnu-directive * aurait été un meilleur nom. –

Répondre

4

Ma copie de C99 n'a pas cette note (il est l'original - avez-vous une avec des corrections TR appliquées) mais je pense que l'idée est que si vous avez

# non-directive 

dans un argument macro liste, c'est toujours un comportement indéfini.

Il aurait été préférable de faire la < production non directive > comprennent la #, je pense, ce serait simplifier 6.10p3,4 ainsi que la suppression de cette confusion.

+0

La note de bas de page a été ajoutée dans TC2. –

+0

Merci, je pense que vous l'avez bien expliqué. –

Questions connexes