Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ?

Hors ligne

#703 Le 02/07/2011, à 01:01

Кຼزດ

Re : /* Topic des codeurs couche-tard [5] */

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

(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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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

RépartitionPosts/heure


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!



Кຼزດ a écrit :
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 tongue.

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)

Кຼزດ a écrit :

(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

#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] */

Πυλάδης a écrit :

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]
Πυλάδης a écrit :

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] */

grim7reaper a écrit :
Πυλάδης 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… ><"


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.


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


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


grim7reaper a écrit :

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] */

Πυλάδης a écrit :
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.

Πυλάδης a écrit :
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 :]

Πυλάδης a écrit :
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 hmm

Πυλάδης a écrit :

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


“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] */

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


“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] */

Πυλάδης a écrit :

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

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 roll
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]
Πυλάδης a écrit :
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 wink



Bon sinon je viens de trouver un bug dans le forum hmm
(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] */

grim7reaper a écrit :

Ce code est monstrueux, t'en as conscience au moins ?

Tout à fait. tongue

Je n’ai jamais dit que c’était propre, mais que ça fonctionnait. tongue

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 tongue
(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 hmm (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 hmm

bref, si quelqu'un à des pistes, je veux bien, que ce soit pour le reverse engeenering du fichier, ou la capture de la page… hmm

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 tongue)

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

whitequark a écrit :

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