/source/39043-yoyomd5-calcul-et-affichage-de-la-clef-md5-d-un-fichier
A quand une faq cppfrance ? Ca pourrait alleger le forum vu le nombre de questions récurrentes ?
Oui mais la tab et buf sont des pointeurs, pas des tableaux. C'est exactement la meme chose si je fais int tab[10]; int * p = tab; sizeof tab == 10 * sizeof(int) et sizeof p == sizeof(void *) Dans une fonction on ne peut que recevoir un pointeur contenant l'adresse du tableau, puisqu'il est impossible de passer un tableau à u...
Pourquoi il faut se mefier de sizeof ? Il fait des coup bas ?! sizeof retourne la taille d'un pointeur quand on lui passe un pointeur et quand on lui passe un tableau il retourne la taille d'un tableau, je vois rien d'anormal ?
/source/38788-get-et-setdibits
En tout cas je te conseil d'eviter les optimisations de ce genre, à savoir itérer à rebourd et faire x*2 + x au lieu de x*3, car au mieux le gain est presque invisible, au pir tu empeches le compilateur de faire de vrais optimisations et dans tout les cas ca rend le code moins lisible.
"Ah et pour le x+x*2 à la place de x*3 c'est que x*3 va générer un imul très coûteux en temps processeur. x+x*2 va générer un lea, beaucoup moin long à executer et tout aussi efficasse." Le compilateur n'est pas con, si nous on peut le faire alors lui... . J'ai testé avec gcc (en -O3) et il me génère exactement la meme sortie pour x*3 ...
Tu enlèves une comparaison mais ton calcul de pos est plus complexe, surtout que comme l'a dit vecchio56 ca peut se parcourir en une seule boucle. Tu devrais faire des tests car tu gagnes presque rien (un cmp contre un jns), ca peut meme empecher le compilateur de faire de vrai optimisations (comme une vectorisation). En générale on op...
Pourquoi ne pas parcourir l'image comme ca tout simplement ? for(y = 0; y < bi.bmiHeader.biHeight; y++) { for(x = 0; x < bi.bmiHeader.biWidth; x++) { // Calcule de la position dans le buffer const int pos = (y * bi.bmiHeader.biWidth) + x*3; lpBits[pos]++; // Bleu lpBits[pos+1]++; // Vert lpBits[pos+2]++; // R...
Pourquoi parcourir l'image de cette façon ? C'est peut lisible et au final c'est moins efficace ??
/source/33454-bibliotheque-fzstd-pour-application-windows
C'est une archive, renommez FzStd en .tar sous windows.
/source/33240-classe-liste
"cela dit qu'on ne peut utiliser que celles là?" Ca c'est plutot l'instenciation explicite des templates en compilation séparée.
La base de la programmation générique c'est la surcharge, et les templates c'est un peu de la surcharge automatique, la specialisation d'un template permet d'avoir un peu plus de controle. Par exemple tu fais une classe template avec un parametre sur le type: template class Foo {}; et tu veux que l'implémentation soit spéciale pour ...
Ce sont des specialisations pour le template. C'est quoi BListeDir ?
Tu utilises la meme convention de codage que GNU/libstdc++, qu'est ce que tu lui trouves ? Comme tes noms sont en français, list -> liste pour etre plus cohérent.
/source/33171-decoupage-chemin-fichier-forum
Les guillemets ? non je penses pas, ca compile ca en C++ ? struct { int a; int b; } s { .b 5 }; Mais tu as raison, c ansi est à peu de chose prés (cast du void* par exemple) compatible avec C++.
C'est pas grave je voulais dire, on peut se contenter de mettre le code en extern "C", le C s'interface tres bien avec le C++.
Tout ce qui "marche" en C "marche" en C++ Justement non, c'est pour ca toute ces questions, C n'est pas compatible avec C++. Enfin c'est grave.
Mais dans ce cas il faut absolument mettre la directive extern "C", et pourquoi donner une solution C à un probleme en C++ ?
Pourquoi tu compiles en C++ ? Tu peux tres bien compiler en C, c'est juste une histoire d'extension du fichier source avec la plupart des edi.
Il manque des const et un entete (ctype.h pour toupper), le cast de la valeur retour de malloc n'est pas nécéssaire.
/source/33132-manipulation-de-matrices
C'est buggé (beaucoup de fuites et code trop complexe), l'arrangement des données nuit aux performances. Tu devrais oublier tout ca et utiliser boost::numeric::ublas::matrix. http://www.boost.org/libs/numeric/ublas/doc/matrix.htm