cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 2009
-
14 août 2004 à 21:08
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 2009
-
16 août 2004 à 13:52
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 16 août 2004 à 13:52
j'en savais rien ;)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 août 2004 à 13:45
Sur VS on choisit le mode de compilation C ou C++ dans les options projet quelle que soit l'extension de fichier, aucun probleme.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 16 août 2004 à 13:33
l'extension des fichiers en .cpp m'a fait dire que c'etait du C++ (meme si aucun mot clé propre a ce langage, le compilateur ne va cependant pas permettre certaines largesses du C, vu qu'il va compiler en C++...), honte a moi et a ma famille sur 5 generations.
BlackGoddess
Messages postés338Date d'inscriptionjeudi 22 août 2002StatutMembreDernière intervention14 juin 2005 16 août 2004 à 11:00
comparons ce qui est comparable, et melanger du C au C++ n'a qd meme rien a voir avec melanger du C++ avec de l'assembleur et des passages obscurs qui sont sans interet...
> un bel exemple de mélange encore, ici c'est du C et de l'asm, pas de C++...
le problème est que en général qq1 qui fourre un peu d'asm dans son code sait ce qu'il fait ... alors que qq1 qui melange du C et du C++ ne s'en rend pas forcement compte ...
(exemples : incompatibilité des flux, de la gestion mémoire ...)
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 août 2004 à 22:30
Autres remarques: manque un break à la fin de WM_INITDIALOG, et return 0 inutile à la fin de WM_COMMAND
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 août 2004 à 22:26
pour le c = bnstrcpy(szBuff, "Windows "); si en tous cas
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 août 2004 à 22:20
Parce qu'on n'est pas partout aligne sur un multiple de 4, au dela faut inserer par octet.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 août 2004 à 22:14
Pour ma part, je trouve aussi que la manière d'affecter les chaines est peu pertinente mais bon, il n'y a pas mort d'homme. Mais quitte a faire cela, pourquoi ne pas le faire partout?
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005 15 août 2004 à 16:46
D'ailleur niveau optimisation...
les incrementations de 'c' peuvent être externalisées des 'switch' Utilisation abusive de 'case'.. enfin il y a déjà pas mal de choses à voir avant l'utilisation de telles méthodes.
Mais bon de toute manière ce n'était pas le but de la source forcément. (je met 10 pour remonter le 1 qui est un peu exagéré...)
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 avril 2005 15 août 2004 à 16:28
Avis perso, je trouve ca ridicule.
La lisibilité du code est nulle. L'optimisation Cycle/taille négligeable.
Ceci étant dit, si vous voulez toujours utiliser cette méthode, vous pouvez le faire de maniere beaucoup plus lisible:
*(long*)pString = *(long*)"Es";
par exemple.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 15 août 2004 à 10:38
J'ai mis la correspondance ascii a coté mais ca correspond a ca :
strcpy(c, "95 ");
Pour le pkoi jutilise ca, c marqué plus haut :)
++
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 15 août 2004 à 10:25
Bon moi je vais vous révéillé avec une question :
Comment est ce que ca se lit et ca ce comprend ca :
*((DWORD *)c) = 0x203539 ?????
Et pas de dispute encore ;-) !!!!!
Shell
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 août 2004 à 00:29
OK la dessus et bonne nuit a tous.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 août 2004 à 00:29
farpaitement !
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 15 août 2004 à 00:27
un ptit dodo serait de mise pour tt le monde..
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 août 2004 à 00:24
moi la seule chose que je trouve déplacée, c'est d'aller chercher chez les vieux commentaires de quelqu'un pour justifier son opinion. c'est tout. c'est lgenre de truc que jfaisais qd j'etais au CP, et qd jdisais a la maitresse que j'avais ptet fait ca mais que romain il a fait pire.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 août 2004 à 00:21
perdu!! je sais tres bien que c'est plus rapide, et je sais tres bien pourquoi (brunews n'a pas le monopole des connaissances en assembleur). simplement c'est moins lisible et le gain réel en rapidité est completement négligeable sur l'ensemble de ton programme, c'est la seule chose que j'ai voulu dire !
sur ce...
a+ ;)
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 15 août 2004 à 00:21
Bon ok, chacun pense ce kil veut, jne vais pas te jeter la pierre, bien au contraire..
Bonne continuation
++
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 août 2004 à 00:20
Ah mais quand je touve un truc pas bon je le dis, c'est clair.
Que la betise se generalise parce que qlqun code un chouia bas niveau dans un code C, c'etait franchement deplace. Son code aurait ete avec des 'string' ou autres lenteurs et il y aurait eu au milieu la partie incriminee, on pouvait comprendre, mais la... Si le C n'est plus fait pour la vitesse, faudra m'expliquer. Il y a le java, le vb, le .net ..., fort heureusement qu'il y a encore du monde pour gagner des cycles.
Son petit code pourrait se trouver au milieu d'un beaucoup plus gros morceau avant affichage des resultats, il n'y a jamais de cycles gratuits.
Mon intrusion ne se voulait pas 'cassante', c'etait juste pour rappeler qu'on a chacun des points de vues parfois divergeants mais que tout le monde a droit de poser une source. Quand je vois source 'Linux', ce n'est pas pour moi, et bien je la laisse tranquille.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 août 2004 à 00:16
j'ai dit ca alexman car selon moi, 90 % des gens d'ici ne vont pas comprendre les lignes la c'est tout.
et meme si tu gagnes plus d'un cycle, vraiment, quel est le sens de ca dans les programmes non critiques ??? si le changement est perceptible pour un humain d'accord, mais la c'est pas le cas !
ensuite je ne pense pas 'prendre des bonnes habitudes' signifie remplacer le plus possible un code de base en C++ avec de l'assembleur, car c'est au détriment de la lisibilité du code et donc de son evolution (relire des codes mal écrits meme par soi meme quelque temps apres est un exercice ardu !).
encore une fois les gens qui cherchent a s'ameliorer pour réaliser des passages critiques d'un programme importants vont soit apprendre l'ASM soit réfléchir a la facon de trouver un meilleur algorithme.
enfin c'est sur que je pense comme je veux, et je pense que l'on peut faire un code efficace et rapide sans sacrifier sa lisibilité.
a+ ;)
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 15 août 2004 à 00:11
ok je t'explik paskil ma expliké :
*((DWORD *)c) = 0x203539; sera traduit direct par le compilo en
mov dword ptr[eax], 203539h //eax vers c
alors kun strcpy devrait recup chak caractere ds un registre, le passer ds la chaine destination et le tester pour voir sil n'est pas egal a 0, donc les cycles sont vite gagné avec cette methode.
Je comprend BruNews, tu a critiké alors ke tu ne savais mm pas pkoi il utilise ca.
++
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 15 août 2004 à 00:06
sinon brunews, faudrait expliquer quel est l'interet sur un forum de rechercher ds les commentaires des sources de quelqu'un qui ne partage pas ton opinion, pour ensuite essayer de le casser et dle descendre? pas besoin de pousser le vice jusqu'a la, enfin si ca te procure du plaisir... note que jme suis empeché de répondre avec un argument du meme tonneau du genre 'toi tu peux parler t'as vu ce que t'as dit sur le code 7801 ché pa koi...'
chacun a sa propre conception sur les echanges avec les autres sur le net cela dit...
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 15 août 2004 à 00:01
j'attendais la personne ki allait me dire que "j'imitais brunews", si prendre exemple sur un programmeur plus doué ke nous est de l'imitation pour toi, jpeux rien y faire, car pour moi c de l'intelligence (pas pretentieux ce ke je dis la). Prendre cette habitude n'est pas mauvais au contraire (fais un desassembly, tu gagnes plus kun cycle, mm ds mon code "basik"). Enfin tu penses ce ke tu veux, AMEN.
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 14 août 2004 à 23:56
comparons ce qui est comparable, et melanger du C au C++ n'a qd meme rien a voir avec melanger du C++ avec de l'assembleur et des passages obscurs qui sont sans interet...
apres c'est pas une critique a tout va, dsl si tu l'as pris comme ca, mais jtrouve débile de vouloir imiter brunews a tout prix... apres comme tu dis ca sert, mais dans certains passages critiques pour des programmes qui demandent une execution rapide. la plupart du temps, un changement d'algorithme est bien meilleur que le passage vers l'assembleur. en tout cas c'est pas tres 'pertinent' de vouloir caser ca au milieu d'un code basique ou il n'y justement pas de passage critique et qui n'a pas un besoin réel un temps de traitement.
imaginons un code dont le de temps d'execution est de 1000 unités de temps, est il réellement avantageux de le remplacer par un code moins clair qui va tourner en 999 unités de temps ? bien sur que non.
sinon bonne continuation, mais si tu voulais illustrer ces passages la (et montrer que ca apporte quelque chose d'autre que du brouillard), il aurait été plus judicieux de trouver un code simple ou le changement etait adapté.
t'inkietes pas non plus; rien de grave non plus ds mes remarques ;)
a++
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 23:49
Voila, rectification apportée. merci ++
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 23:48
Put..., decidement, j'ai codé ca comme un c.. . Merci aardman pour le IDCANCEL.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 14 août 2004 à 23:43
Salut,
il faudrait penser a traiter IDCANCEL aussi, car si tu cliques sur la croix dans la barre de titre la dialog ne se ferme pas.
Sinon, pour le "*((DWORD *)c) = 0x203539;", bah je vois pas ou ca pose probleme, du moment qu'il y a un commentaire a coté avec la correspondance ascii.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 août 2004 à 23:30
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 22:33
ah ca va, rien de grav, tu as compris le principe ? ben pas tt le monde, et c'est mieux de le voir sur de ptites sources, nan ? En fait, c un pli ke 'jmefforce' de prendre, si kelkun ne comprend pas, me demande et j'explik, arrete de critiquer a tt va, si ca n'apportait rien, jne ferai pas. Jme suis renseigné avant de mettre ce genre de trucs, moi non plus n'aimait pas, mais ca sert, donc le pli est a prendre. Et sil te plait, soit un peu plus simpa dans tes comments, jle repete, rien de grav ds ma source..
cosmobob
Messages postés700Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention27 janvier 20094 14 août 2004 à 22:29
"*((DWORD *)c) = 0x203539;"
la betise se géneralise on dirait !!! a quoi ca sert de faire cela plutot que d'affecter a la main les premieres cases de ton tableau de char? a part que la c'est un truc imbuvable. si tu fais des sources que pour toi meme, quel est l'interet de les poster ici? surtout pour un code aussi basique ... ca sert a rien de vouloir gagner 3 temps processeur, tout est négligeable devant l'appel de la fonction dialogbox.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 21:43
dsl pour l'erreur.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 21:38
je vois l'erreur, copier coller stupide..
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 14 août 2004 à 21:33
"Windows 200" sur un Ent Server 2003.
Utilise API, plus complet, services packs importants.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 14 août 2004 à 21:08
J'oublais, des tests sur differents os seraient les bienvenues ;)
16 août 2004 à 13:52
16 août 2004 à 13:45
16 août 2004 à 13:33
16 août 2004 à 11:00
> un bel exemple de mélange encore, ici c'est du C et de l'asm, pas de C++...
le problème est que en général qq1 qui fourre un peu d'asm dans son code sait ce qu'il fait ... alors que qq1 qui melange du C et du C++ ne s'en rend pas forcement compte ...
(exemples : incompatibilité des flux, de la gestion mémoire ...)
15 août 2004 à 22:30
15 août 2004 à 22:26
15 août 2004 à 22:20
15 août 2004 à 22:14
15 août 2004 à 16:46
les incrementations de 'c' peuvent être externalisées des 'switch' Utilisation abusive de 'case'.. enfin il y a déjà pas mal de choses à voir avant l'utilisation de telles méthodes.
Mais bon de toute manière ce n'était pas le but de la source forcément. (je met 10 pour remonter le 1 qui est un peu exagéré...)
15 août 2004 à 16:28
La lisibilité du code est nulle. L'optimisation Cycle/taille négligeable.
Ceci étant dit, si vous voulez toujours utiliser cette méthode, vous pouvez le faire de maniere beaucoup plus lisible:
*(long*)pString = *(long*)"Es";
par exemple.
15 août 2004 à 10:38
strcpy(c, "95 ");
Pour le pkoi jutilise ca, c marqué plus haut :)
++
15 août 2004 à 10:25
Comment est ce que ca se lit et ca ce comprend ca :
*((DWORD *)c) = 0x203539 ?????
Et pas de dispute encore ;-) !!!!!
Shell
15 août 2004 à 00:29
15 août 2004 à 00:29
15 août 2004 à 00:27
15 août 2004 à 00:24
15 août 2004 à 00:21
sur ce...
a+ ;)
15 août 2004 à 00:21
Bonne continuation
++
15 août 2004 à 00:20
Que la betise se generalise parce que qlqun code un chouia bas niveau dans un code C, c'etait franchement deplace. Son code aurait ete avec des 'string' ou autres lenteurs et il y aurait eu au milieu la partie incriminee, on pouvait comprendre, mais la... Si le C n'est plus fait pour la vitesse, faudra m'expliquer. Il y a le java, le vb, le .net ..., fort heureusement qu'il y a encore du monde pour gagner des cycles.
Son petit code pourrait se trouver au milieu d'un beaucoup plus gros morceau avant affichage des resultats, il n'y a jamais de cycles gratuits.
Mon intrusion ne se voulait pas 'cassante', c'etait juste pour rappeler qu'on a chacun des points de vues parfois divergeants mais que tout le monde a droit de poser une source. Quand je vois source 'Linux', ce n'est pas pour moi, et bien je la laisse tranquille.
15 août 2004 à 00:16
et meme si tu gagnes plus d'un cycle, vraiment, quel est le sens de ca dans les programmes non critiques ??? si le changement est perceptible pour un humain d'accord, mais la c'est pas le cas !
ensuite je ne pense pas 'prendre des bonnes habitudes' signifie remplacer le plus possible un code de base en C++ avec de l'assembleur, car c'est au détriment de la lisibilité du code et donc de son evolution (relire des codes mal écrits meme par soi meme quelque temps apres est un exercice ardu !).
encore une fois les gens qui cherchent a s'ameliorer pour réaliser des passages critiques d'un programme importants vont soit apprendre l'ASM soit réfléchir a la facon de trouver un meilleur algorithme.
enfin c'est sur que je pense comme je veux, et je pense que l'on peut faire un code efficace et rapide sans sacrifier sa lisibilité.
a+ ;)
15 août 2004 à 00:11
*((DWORD *)c) = 0x203539; sera traduit direct par le compilo en
mov dword ptr[eax], 203539h //eax vers c
alors kun strcpy devrait recup chak caractere ds un registre, le passer ds la chaine destination et le tester pour voir sil n'est pas egal a 0, donc les cycles sont vite gagné avec cette methode.
Je comprend BruNews, tu a critiké alors ke tu ne savais mm pas pkoi il utilise ca.
++
15 août 2004 à 00:06
chacun a sa propre conception sur les echanges avec les autres sur le net cela dit...
15 août 2004 à 00:01
14 août 2004 à 23:56
apres c'est pas une critique a tout va, dsl si tu l'as pris comme ca, mais jtrouve débile de vouloir imiter brunews a tout prix... apres comme tu dis ca sert, mais dans certains passages critiques pour des programmes qui demandent une execution rapide. la plupart du temps, un changement d'algorithme est bien meilleur que le passage vers l'assembleur. en tout cas c'est pas tres 'pertinent' de vouloir caser ca au milieu d'un code basique ou il n'y justement pas de passage critique et qui n'a pas un besoin réel un temps de traitement.
imaginons un code dont le de temps d'execution est de 1000 unités de temps, est il réellement avantageux de le remplacer par un code moins clair qui va tourner en 999 unités de temps ? bien sur que non.
sinon bonne continuation, mais si tu voulais illustrer ces passages la (et montrer que ca apporte quelque chose d'autre que du brouillard), il aurait été plus judicieux de trouver un code simple ou le changement etait adapté.
t'inkietes pas non plus; rien de grave non plus ds mes remarques ;)
a++
14 août 2004 à 23:49
14 août 2004 à 23:48
14 août 2004 à 23:43
il faudrait penser a traiter IDCANCEL aussi, car si tu cliques sur la croix dans la barre de titre la dialog ne se ferme pas.
Sinon, pour le "*((DWORD *)c) = 0x203539;", bah je vois pas ou ca pose probleme, du moment qu'il y a un commentaire a coté avec la correspondance ascii.
14 août 2004 à 23:30
extrait de la fin de la 3eme reponse sur:
http://www.cppfrance.com/code.aspx?id=20546
Chacun trouvera toujours son censeur.
14 août 2004 à 22:33
14 août 2004 à 22:29
la betise se géneralise on dirait !!! a quoi ca sert de faire cela plutot que d'affecter a la main les premieres cases de ton tableau de char? a part que la c'est un truc imbuvable. si tu fais des sources que pour toi meme, quel est l'interet de les poster ici? surtout pour un code aussi basique ... ca sert a rien de vouloir gagner 3 temps processeur, tout est négligeable devant l'appel de la fonction dialogbox.
14 août 2004 à 21:43
14 août 2004 à 21:38
14 août 2004 à 21:33
Utilise API, plus complet, services packs importants.
14 août 2004 à 21:08