GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 108 réponses

Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 22
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Antoine Leca
Le #658013
En 40ed3ed1$, Manuel Leclerc va escriure:
http://groups.google.com/groups?threadm/


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

Emmanuel Delahaye
Le #658011
In 'fr.comp.lang.c', "Manuel Leclerc"
http://groups.google.com/groups?threadm/



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/

Emmanuel Delahaye
Le #658010
In 'fr.comp.lang.c', Emmanuel Delahaye
#define NULL ((void)0)


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/

Manu
Le #657761
Emmanuel Delahaye wrote:

le réveil est difficile!

#define NULL ((void *)0)


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...

Alexandre BACQUART
Le #657500
Manuel Leclerc wrote:
http://groups.google.com/groups?threadm/


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

Publicité
Suivre les réponses
Poster une réponse
Anonyme