Le langage de Linus
Le
Manuel Leclerc
http://groups.google.com/groups?threadm/zDW-8gs-9@gated-at.bofh.it
--
I don't mind getting proven wrong. I change my opinions the way
some people change underwear. And I think that's ok.
--Linus Torvalds
--
I don't mind getting proven wrong. I change my opinions the way
some people change underwear. And I think that's ok.
--Linus Torvalds

Poser une question


En passant, 0 n'est peut-être pas un pointeur, mais NULL n'est pas un vrai
pointeur non plus.
En particulier, dans le contexte
void machin(char *ordre, ...);
machin("lit donc une liste de pointeurs terminée par NULL",
arg1, arg2, NULL); /* NON */
il est conseillé de typer NULL comme pointeur, et d'écrire
machin("lis une liste de pointeurs terminée par NULL",
arg1, arg2, (void*)NULL); /* oh oui */
Pour les cas réels d'emploi, regarder exec()
Antoine
Moi, je suis d'accord pour que la définition de NULL soit
#define NULL ((void)0)
et non
#define NULL 0
mais le langage C accepte les 2 pour des raisons de compatibilité ascendente,
je suppose...
--
-ed- get my email here: http://marreduspam.com/ad672570
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/r...bÉ9
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
le réveil est difficile!
#define NULL ((void *)0)
--
-ed- get my email here: http://marreduspam.com/ad672570
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/r...bÉ9
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Je ne sais pas ce que dis la norme, mais j'ai des vieux souvenirs de
cours de C où le prof nous avait dit que NULL n'était pas forcément
équivalent à 0 (à l'adresse 0x0 ?).
Ca dépendrait des architectures...
Très classique, NULL ne signifiant pas dans l'absolu "0", mais
"invalide". Il suffit de vadrouiller un peu pour trouver des 0 affectés
à des pointeurs et des NULL affectés à des entiers. Ca me fait bondir à
chaque fois... et la confusion est pire depuis que Stroustrup a dit que
NULL c'est pas joli sous prétexte que son langage impose un contrôle de
type plus sérieux, et que :
const int NULL = 0; // C++, pas C !
Moi je trouve pas ça sérieux du tout, contrôle de type ou pas.
--
Tek