RE: Le langage de Linus
Le
Marc Lasson
Euh, en feuilletant vaguement mon exemplaire de la norme (C99, hein, soy
ons pas vieux jeu), NULL est juste définit comme
"expands to an implementation-defined null pointer constant;".
Chapitre 7.17 verset 3.
Ce qui en fait est une trés bonne définition puisqu'elle englobe tous
les problèmes sus-cités: C'est un pointeur (donc pas besoin du cast en
C99 pour les printfs) et sa définition est laissée à l'implémentation,
(ca peut donc être autre chose que 0).
Et donc c'est une erreur (et non pas une faute de style) en C99, de
mettre 0 à la place de NULL (et vice-versa !).
Enfin, je suis encore novice en interpretation de saintes écritures,
je me trompe peut-être.
--
Marc, "zbifmqfl urontjr asuacsvracdbpjwragrvokc fk"
pour pouvoir me contacter par mail, il faut décrypter ce message
crypté à l'aide du carré de vigenere (l'alphabet utilisé est l'espace
et les lettres latines).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Fri Jul 9 10:36:42 2004 depuis l'IP : 193.49.225.9 [VIP 668455513781]
ons pas vieux jeu), NULL est juste définit comme
"expands to an implementation-defined null pointer constant;".
Chapitre 7.17 verset 3.
Ce qui en fait est une trés bonne définition puisqu'elle englobe tous
les problèmes sus-cités: C'est un pointeur (donc pas besoin du cast en
C99 pour les printfs) et sa définition est laissée à l'implémentation,
(ca peut donc être autre chose que 0).
Et donc c'est une erreur (et non pas une faute de style) en C99, de
mettre 0 à la place de NULL (et vice-versa !).
Enfin, je suis encore novice en interpretation de saintes écritures,
je me trompe peut-être.
--
Marc, "zbifmqfl urontjr asuacsvracdbpjwragrvokc fk"
pour pouvoir me contacter par mail, il faut décrypter ce message
crypté à l'aide du carré de vigenere (l'alphabet utilisé est l'espace
et les lettres latines).
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Article poste via Voila News - http://www.news.voila.fr
Le : Fri Jul 9 10:36:42 2004 depuis l'IP : 193.49.225.9 [VIP 668455513781]

Poser une question


Si c'était vrai, expliques-nous pourquoi on lis dans 6.3.2.3p3
An integer constant expression with the value 0 [...] is called a /null
pointer constant/.
Pour information, dans les crochets il y a
« , or such an expression cast to type void *, »
avec "void *" en Courier gras.
Antoine
Non. "null pointer constant" != "constant null pointer".
"null pointer constant" peut se traduire par "constante de pointeur nul"
mais cela ne dit pas du tout que c'est un pointeur.
--
Vincent Lefèvre 100% validated (X)HTML - Acorn / RISC OS / ARM, free software, YP17,
Championnat International des Jeux Mathématiques et Logiques, etc.
Work: CR INRIA - computer arithmetic / SPACES project at LORIA
Oups, mea culpa.
Je me tairais la prochaine fois.
--
Marc.
Si ce que je dis est vrai, c'est que ceci est une coquille.
J'espère qu'elle n'est pas restée dans la version finale.
--
Marc.
|> Antoine Leca wrote:
|> > Si c'était vrai, expliques-nous pourquoi on lis dans 6.3.2.3p3
|> Si ce que je dis est vrai, c'est que ceci est une coquille. J'espère
|> qu'elle n'est pas restée dans la version finale.
Pas de coquille. Un des caractèristiques de C, c'est un « null pointer
constant » n'est pas forcement un pointeur. Ça a toujours été comme ça.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34