[C] COMPARAISON GÉNÉRIQUE (OU COMMENT COMPARER DES ELEMENTS DU TYPE VOID * ...)

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
LocalStone
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41084-c-comparaison-generique-ou-comment-comparer-des-elements-du-type-void

LocalStone
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

Grrr ... Je sais pas comment vous expliquer.
Je sais qu'il n'y a pas de référence en C. La manière dont le code est structuré permet dans ce cas de SIMULER des références, justement en cachant totalement la notion de pointeur. Naturellement, c'est stupide de faire ça, étant donné qu'il existe le Java, le C++, le C# et j'en passe et des meilleurs. Mais ! ... Bah dans le cadre de mon projet, je devais absolument le faire en C. C'est pour ça que j'ai du faire ça. Voilà voilà ...
cs_vicenzo
Messages postés
179
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010

Bon, LocalStone :

* primo : la notion de "référence" n'existe pas en C ! Donc dire : "je fais du C avec des références" est un non sens. En C il y des objets (au sens générique de variable et non en terme de poo) et des pointeurs sur ces objets !

* L'article que tu mentionnes "le C Objet" explique en fait l'idée qu'a eu un certain Bjarne Soustroup il y a 25 ans quant il a crée le "C with classes" qui est devenu le C++. Au début, le code "C with classes" était présenté à un précompileur qui se chargait de générer un code C dans le même esprit que celui de l'article...

* Si tu a besoin d'aide sur le C, n'hésites pas, demande !!!
LocalStone
Messages postés
514
Date d'inscription
mercredi 19 mars 2003
Statut
Membre
Dernière intervention
1 mars 2009

:) En fait vous n'êtes pas encore prêt ...
Non, je plaisante. C'est vrai que j'ai pas trop expliqué pourquoi le code est un peu bizarre. En fait, j'ai appris le C cette année. Je connaissais déjà le Java, le C# et tout ça, mais je ne connaissais pas le C. Et il se trouve que dans l'école dans laquelle je me trouve, il nous appris à nous servir du C en utilisant que des références. En fait, ils pensaient déjà au semestre suivant : l'apprentissage du Java.
Du coup j'ai cherché et j'ai trouvé ça : http://chgi.developpez.com/c/objet/.
Et en fait, j'ai globalement suivi cette methode. J'ai seulement rajouté l'idée de l'instance porteuse de constructeut avec la variable globale dont le nom est presque identique au type.
Voilà voilà ... Maintenant, je suis d'accord, autant faire du C++. Bah ouais, mais je peux pas ... Pour l'instant :)
Dans l'espoir d'avoir été un peu mieux compris ...
cs_vicenzo
Messages postés
179
Date d'inscription
mardi 16 août 2005
Statut
Membre
Dernière intervention
25 août 2010

simplicité est mère d'efficacité ! Pourquoi faire compliqué quand le problème est tout simple. !

C'est pourquoi, je ne pige pas le choix du niveau initié !

les pointeurs génériques et les pointeurs de fonction ont fait la force (puissance) du C et en même temps sa faiblesse (la + grande source de bug au monde !)

Donc, pour ta fonction sort, utilise qsort() en lui fournissant une fonction de tri de ton choix, tu ne pourra pas faire mieux, je pense !