#701 Le 02/07/2011, à 00:13
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
for (;;)
work();
Je veux juste être sorti de la boucle par un signal.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#702 Le 02/07/2011, à 00:35
- Elzen
Re : /* Topic des codeurs couche-tard [5] */
Un while n'est-il pas mieux qu'un for, dans ce cas ?
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#703 Le 02/07/2011, à 01:01
- Кຼزດ
Re : /* Topic des codeurs couche-tard [5] */
Un while n'est-il pas mieux qu'un for, dans ce cas ?
J’ose supposer que le compilo en fait la même chose, et le for fait moins de caractères .
(mais je trouve un while plus lisible, par habitude, sans doute).
dou
Hors ligne
#704 Le 02/07/2011, à 01:06
- samυncle
Re : /* Topic des codeurs couche-tard [5] */
.
Hello world
Hors ligne
#705 Le 02/07/2011, à 02:04
- nesthib
Re : /* Topic des codeurs couche-tard [5] */
plop
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#706 Le 02/07/2011, à 06:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [5] */
Scores totaux, depuis le début :
1) 3653 nesthib
2) 3237 samuncle
3) 3115 Πυλάδης
4) 2333 Кຼزດ
5) 1803 cm-t
6) 1734+5 grim7reaper /* ./viewtopic.php?pid=3486252#p3486252 */
7) 1383 na kraïou
8) 866 helly
9) 862 \\Ouranos//
10) 659 gnuuat
11) 650 tshirtman
12) 565 Lagierl
13) 440 Rolinh
14) 418 nathéo
15) 385 The Uploader
16) 271 Kanor
17) 202 :!pakman
18) 196 Askelon
19) 121 ǤƦƯƝƬ
20) 99 kamui57
21) 93 petifrancais
22) 78 edge_one
22) 78 pierguiard
24) 70 gulp
25) 45 Le Rouge
26) 42 sakul
27) 37 ilagas
28) 36 xapantu
29) 30 keny
30) 26 gustare
30) 26 d10g3n
32) 25 GentooUser
32) 25 Morgiver
34) 24 ไ୦บเઢ'
34) 24 Steap
36) 20 CROWD
37) 18 Ph3nix_
38) 16 kouskous
39) 15 timsy
40) 12 stratoboy
40) 12 sailing
42) 11 alexises
42) 11 Crocoii
44) 10 Toineo
44) 10 NutMotion
44) 10 pseudovingtcinqcaracteres
44) 10 pfriedZ
44) 10 CasseTaTele
44) 10 Zeibux
44) 10 THS`
51) 8 Mornagest
52) 7 Vista
53) 6 ubuntlin
53) 6 asma.geek
55) 5 tendances-tdct
55) 5 kinouchou
57) 4 danychou56
57) 4 Neros
57) 4 Biaise
57) 4 totoflute
57) 4 pinballyoda ㋛
57) 4 NLS le pingouin
57) 4 ceric
57) 4 Dice-Man
57) 4 Pylade
66) 3 Revan26914
66) 3 raspouillas
66) 3 sweetly
69) 2 SoJaS
70) 1 geenux
70) 1 ArzhurBZH
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#707 Le 02/07/2011, à 06:42
- Compteur du TdCCT
Re : /* Topic des codeurs couche-tard [5] */
Scores de la période en cours :
1) 10 nesthib
2) 6 samuncle
2) 6 Кຼزດ
4) 4 cm-t
5) 3 na kraïou
5) 3 tshirtman
7) 1 grim7reaper
Codez-vous trop tard le soir ?
Demandez au Compteur du TdCCT pour le savoir !
J’ai été généreusement codé par tshirtman ; d’ailleurs, voici mon code source. TdCCT CEP : ./viewtopic.php?pid=3493579#p3493579 (p3492608).
Hors ligne
#708 Le 02/07/2011, à 09:38
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Hello World!
ArkSeth a écrit :Un while n'est-il pas mieux qu'un for, dans ce cas ?
J’ose supposer que le compilo en fait la même chose, et le for fait moins de caractères .
Point de vue compilo, while est for c'est la même chose donc bon… (enfin peut y avoir des ptite variations selon les boucles, mais quand c'est vide comme ça y a aucune différence)
(mais je trouve un while plus lisible, par habitude, sans doute).
Spa qu'une question de lisibilité, c'est aussi bien plus adapté ici pour des raisons de sémantique.
Hors ligne
#709 Le 02/07/2011, à 10:14
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
+1 pour la sémantique…
Hors ligne
#710 Le 02/07/2011, à 10:53
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Bof…
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#711 Le 02/07/2011, à 11:00
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Bah non c'est pas bof.
Les for c'est pour des boucles avec un début, une fin et un pas connus. D'ailleurs en algo c'est souvent traduit par un truc du genre
POUR i DE n À m PAS k FAIRE
ton code
Dans ton truc y'a pas de début, pas de fin et pas de pas, c'est tout sauf un for d'un point de vue sémantique.
(c'est pour ça qu'un for peut être parallèlisable plus facilement et est parfois plus optimisable qu'un while).
Un while qui se traduit plutôt comme un
TANT QUE condition FAIRE
ton code
Donc ça colle bien avec le "tant que 1 est vrai (et 1 est toujours considéré comme vrai, d'où la boucle infinie) faire quelque chose".
Dernière modification par grim7reaper (Le 02/07/2011, à 11:01)
Hors ligne
#712 Le 02/07/2011, à 14:31
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Tiens, aujourd'hui en répondant à un mail long comme un longcat (dont l'un des sujets de débat était les incompatibilités entre C et C++), je me suis rappelé de certaines structures du C particulièrement moche (qui font partie de ces fameuses incompatibilités).
struct S{int x, y;} foo(void)
{
struct S s = {42, 53};
return s;
}
void bar(struct T{int x, y;} t)
{
t.x = t.y;
}
int main(void)
{
return 0;
}
Et oui, c'est parfaitement valide en C (bien que même GCC le laxiste warn par défaut sur la seconde fonction, ça n'en reste pas moins du code valide ^^").
Dernière modification par grim7reaper (Le 02/07/2011, à 14:33)
Hors ligne
#713 Le 02/07/2011, à 15:13
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
GCC warn sur la deuxième fonction juste parce que t.y n’est pas initialisé, non ?
Enfin, même si ce n’est pas particulièrement esthétique, je trouve que ça reste dans l’esprit du C, donc ça ne me choque pas.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#714 Le 02/07/2011, à 15:52
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
GCC warn sur la deuxième fonction juste parce que t.y n’est pas initialisé, non ?
Non.
warning: 'struct T' declared inside parameter list [enabled by default]
warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
Enfin, même si ce n’est pas particulièrement esthétique, je trouve que ça reste dans l’esprit du C, donc ça ne me choque pas.
O_o, ça te choque pas de déclarer un type à l'intérieur de la déclaration d'une fonction ?
Tu fais comment pour appeler la fonction bar ?
Et en quoi c'est dans l'esprit du C ?
Sinon, un autre truc méconnu en C :
#include "stdio.h"
int main(void)
{
printf("%s\n", sizeof 'a' == sizeof(int) ? "WTF!" : "k");
return 0;
}
Je vous laisse constater la sortie par vous‑même :]
(À savoir qu'en C++, la sortie est différente).
Y'a aussi une histoire de ce genre pour les enum. En C, sizeof d'une enum vaut toujours sizeof(int) alors qu'en C++ le sizeof d'une enum est variable : le C++ peut choisir la taille la plus approprié selon le nombre d'item énumérés (bon chez moi ça semble pas être le cas >_<).
Dernière modification par grim7reaper (Le 02/07/2011, à 16:02)
Hors ligne
#715 Le 02/07/2011, à 18:08
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Πυλάδης a écrit :GCC warn sur la deuxième fonction juste parce que t.y n’est pas initialisé, non ?
Non.
Ah ben oui, quel con… ><"
O_o, ça te choque pas de déclarer un type à l'intérieur de la déclaration d'une fonction ?
Ben je trouve ça moche, bien sûr, mais je ne vois pas en quel honneur une déclaration de ce type ne serait pas valide.
Tu fais comment pour appeler la fonction bar ?
Ah ben moi, je n’écrirait pas la fonction bar comme ça, c’est sûr. Mais après, tant que tu lui passes des donnés, la fonction elle se débrouille. Après t’es forcément spécifique à la plate-forme avec ce genre de code (taille des entiers), mais la fonction peut quand même travailler.
Et en quoi c'est dans l'esprit du C ?
Chais pas. Pour moi, le C, c’est un peu « tu peux faire tout ce que tu veux tant que ça a un sens pour la machine ». Ben là ça a un sens pour la machine, donc ça existe. Enfin, je suis conscient que je ne suis pas bien clair, là.
Sinon, un autre truc méconnu en C :
#include "stdio.h" int main(void) { printf("%s\n", sizeof 'a' == sizeof(int) ? "WTF!" : "k"); return 0; }
Je vous laisse constater la sortie par vous‑même :]
Euh, ça c’est dans la norme, les constantes de type caractère ont le type int.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#716 Le 02/07/2011, à 18:19
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
grim7reaper a écrit :O_o, ça te choque pas de déclarer un type à l'intérieur de la déclaration d'une fonction ?
Ben je trouve ça moche, bien sûr, mais je ne vois pas en quel honneur une déclaration de ce type ne serait pas valide.
Peut‑être parce que l'on ne peut pas appeler la fonction après…
Encore que c'est peut‑être jouable avec une bidouille pré‑ANSI (et encore je l'ai pas trouvé, mais j'ai pas cherché longtemps non plus et puis je suis pas spécialiste du C pré‑ANSI), mais chui pas certain que ça passe en C89.
grim7reaper a écrit :Tu fais comment pour appeler la fonction bar ?
Ah ben moi, je n’écrirait pas la fonction bar comme ça, c’est sûr. Mais après, tant que tu lui passes des donnés, la fonction elle se débrouille.
Ok, bah donne moi un code qui appelle cette fonction bar alors :]
grim7reaper a écrit :Et en quoi c'est dans l'esprit du C ?
Chais pas. Pour moi, le C, c’est un peu « tu peux faire tout ce que tu veux tant que ça a un sens pour la machine ». Ben là ça a un sens pour la machine, donc ça existe. Enfin, je suis conscient que je ne suis pas bien clair, là.
Oui, c'est vrai que l'esprit du C c'est fait ce que tu veux, même si c'est de la merde : c'est à toi de savoir ce que tu fais.
Donc effectivement, c'est pas spécialement contre l'esprit du C. Cela dit, c'est con de te laisser écrire une fonction que tu ne peux pas appeler
Euh, ça c’est dans la norme, les constantes de type caractère ont le type int.
J'ai pas dis le contraire, j'ai juste dis que c'était méconnu (tout le monde ne lis pas la norme hein ).
Mais sur ce point je trouve le C++ plus logique : une constante caractère à la taille d'un caractère.
Édit : Haha, j'aime bien ce message d'erreur :]
error: incompatible type for argument 1 of ‘bar’
note: expected ‘struct T’ but argument is of type ‘struct T’
Dernière modification par grim7reaper (Le 02/07/2011, à 18:22)
Hors ligne
#717 Le 02/07/2011, à 18:35
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
bar.c
#include <stdio.h>
void bar(struct T{int x, y;} t)
{
t.y = t.x;
printf("%Ld\n", t);
}
main.c
int main(void)
{
long long plop=42;
bar(plop);
return 0;
}
Oui, long long c’est moche mais c’est pour que cela fonctionne en 32 bits.
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#718 Le 02/07/2011, à 18:39
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Édit : Haha, j'aime bien ce message d'erreur :]
error: incompatible type for argument 1 of ‘bar’ note: expected ‘struct T’ but argument is of type ‘struct T’
Ouais, c’est quand tu définis deux struct T de portées différentes dans la même unité de traduction. ^^
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#719 Le 02/07/2011, à 19:17
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
bar.c
#include <stdio.h> void bar(struct T{int x, y;} t) { t.y = t.x; printf("%Ld\n", t); }
main.c
int main(void) { long long plop=42; bar(plop); return 0; }
Oui, long long c’est moche mais c’est pour que cela fonctionne en 32 bits.
Ce code est monstrueux, t'en as conscience au moins ?
Passer un entier là où on attend une structure…
D'ailleurs, ça ne compile même pas si c'est mis dans le même fichier
Là c'est juste une magouille en court‑circuitant le compilo (tu fais ça dans 2 unités de trad différentes, et tu passes un coup de linker qui ne fait aucune vérif là‑dessus).
D'ailleurs à ce compte‑là, je peux lui passer un double où ce que je veux à la fonction bar…
C'est pas pour rien que j'ai un warn comme
attention : implicit declaration of function ‘bar’ [-Wimplicit-function-declaration]
grim7reaper a écrit :Édit : Haha, j'aime bien ce message d'erreur :]
error: incompatible type for argument 1 of ‘bar’ note: expected ‘struct T’ but argument is of type ‘struct T’
Ouais, c’est quand tu définis deux struct T de portées différentes dans la même unité de traduction. ^^
Yep, c'est ça
Bon sinon je viens de trouver un bug dans le forum
(oui, j'ai fait un rapport)
Dernière modification par grim7reaper (Le 02/07/2011, à 19:30)
Hors ligne
#720 Le 02/07/2011, à 19:42
- Pylades
Re : /* Topic des codeurs couche-tard [5] */
Ce code est monstrueux, t'en as conscience au moins ?
Tout à fait.
Je n’ai jamais dit que c’était propre, mais que ça fonctionnait.
Dernière modification par Πυλάδης (Le 02/07/2011, à 23:24)
“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
Linus Torvalds – 12 janvier 2003
Hors ligne
#721 Le 02/07/2011, à 19:54
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Ouais OK, mais avec ce principe tu fais fonctionner à peu près n'importe quoi
(mais oui, ça passe…).
Hors ligne
#722 Le 02/07/2011, à 20:15
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
Hum, mon frère a besoin d'un document qui est planqué dans une page avec du flash, c'est sensé être un pdf, avec firebug ou un autre outil, on voit le gros téléchargement qui se fait par derrière, 56Mo, et on peut se le télécharger pépère, seul soucis, c'est pas du tout un pdf à l'arrivé, mais un truc avec etb en extension, que personne connait (à commencer par "file" qui sort un laconique "data"), que "strings" attrape rien dedans, que hachoir attrape des .exe dedans oO (et attrape les mêmes si on l'execute sur les exe trouvés, je pense qu'il bug sévère), bref, on sait pas quoi en faire, et je me demande si on va pas scroller la page flash et faire des screenshots (en automatisant, par ce qu'il y a 335 pages). bref, si quelqu'un à une idée, la page d'origine est là (/!\ flash inside /!\ /!\ chinois inside /!\) http://www.doc88.com/p-39197926573.html, je regarderait bien comment le fichier est décodé en décompilant le fichier flash, mais le décompiler action script que j'ai trouvé (flare) ne produit rien, juste des méthodes vides
bref, si quelqu'un à des pistes, je veux bien, que ce soit pour le reverse engeenering du fichier, ou la capture de la page…
Dernière modification par tshirtman (Le 02/07/2011, à 22:02)
Hors ligne
#723 Le 02/07/2011, à 20:23
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Manque le lien (le chinois c'est pas grave, c'est lisible par rapport à du Flash )
Hors ligne
#724 Le 02/07/2011, à 22:02
- tshirtman
Re : /* Topic des codeurs couche-tard [5] */
oups pardon ^^ edited
Hors ligne
#725 Le 02/07/2011, à 22:08
- grim7reaper
Re : /* Topic des codeurs couche-tard [5] */
Et sinon y'a aussi moyen de récupérer le « pdf » que t'as obtenu ?
Édit : J'ai fait quelques recherches rapides et j'ai vu un mec qui disait ça
I determined that doc88.com probably uses software from cryptbot.com, through I was unable to extract the key: it's probably buried deep into the flash viewer.
(Source : http://superuser.com/questions/98393/is … ash-player
Si c'est bien le cas, ça ne facilite pas nos affaires :-/
Dernière modification par grim7reaper (Le 02/07/2011, à 22:16)
Hors ligne