IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Difficulté d'apprentisage [Débutant(e)]


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut Difficulté d'apprentisage
    Salut a tous. Je débute en C et franchement j'ai du mal a me faire a la syntaxe et a la structure du C, malgré que celle-ci soit proche du Java, language que je "manipule" depuis plus d'un an et demi. Le probleme est également la, je suis trop habitué au Java, aux classes, et j'ai l'impressions que cela me frêne. Auriez-vous des conseilles, des astuces et des ressources pour apprendre le C que vous jugez bien écrites pour les débutants, ou simplement un témoignage qui explique comment vous avez réussi a apprendre le C? Merci pour vos réponses, elles seront toutes appréciées !

  2. #2
    Membre confirmé Avatar de Marco85
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 210
    Par défaut
    Le site d'un Expert Confirmé Sénior : Bien Programmer en langage C d'Emmanuel Delahaye est très bien pour reprendre les bases et quelques concepts "avancés". Il contient des liens très pertinents vers d'autres "références".

    Je conseille vivement.

    Marco85

  3. #3
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Le passage Java -> C n'est pas forcément évident mais si tu as acquis les points importants de la programmation:

    - Bien structuré ton code
    - Réfléchir avant de coder
    - Bien choisir les structures de données

    Tu remarqueras que tu peux prendre toutes les notions de Java (à part peut-être le garbage collector) et les implémenter en C.

    Par exemple, dans le cas d'un vecteur deux dimensions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    typedef struct sVecteur
    {
     float x,y;
    }SVecteur;
     
    SVecteur Vecteur_new()
    {
     SVecteur res = {0.0,0.0};
      return res;
    }
     
    SVecteur Vecteur_add(SVecteur a, SVecteur b)
    {
    SVecteur res = {a.x + b.x, a.y + a.y};
    return res;
    }
    Cela ressemble vaguement à une version objet...

    Jc

  4. #4
    Membre chevronné Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Par défaut
    Un bon bouquin de C, des tutos, faq et forums sur le net.
    Faut juste prendre le temps de lire pas mal de doc et y aller pas à pas !

  5. #5
    Membre confirmé Avatar de Marco85
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 210
    Par défaut
    Entièrement d'accord avec tout ce qui a été dit dans les deux posts précédents. N'oublie pas que l'on peux aussi t'aider pour des problèmes spécifiques sur ce forum. N'hésites pas à poster tes questions, nous y répondrons avec plaisir.

    Marco85

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par fearyourself
    Par exemple, dans le cas d'un vecteur deux dimensions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    typedef struct sVecteur
    {
     float x,y;
    }SVecteur;
     
    SVecteur Vecteur_new()
    {
     SVecteur res = {0.0,0.0};
      return res;
    }
     
    SVecteur Vecteur_add(SVecteur a, SVecteur b)
    {
    SVecteur res = {a.x + b.x, a.y + a.y};
    return res;
    }
    Cela ressemble vaguement à une version objet...
    C'est surtout du gros passage par copie de structure, pas très recommandé en C, quand même...

    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    int main (void)
    {
       SVecteur va = Vecteur_new();
       SVecteur vb = Vecteur_new();
     
       SVecteur vc = Vecteur_add(va, vb);
     
       return 0;
    }
    en plus, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Compiling: main.c
    main.c: In function `main_':
    main.c:28: warning: unused variable `vc'
    main.c: In function `Vecteur_new':
    main.c:12: warning: function returns an aggregate
    main.c: In function `Vecteur_add':
    main.c:18: warning: function returns an aggregate
    main.c: In function `main_':
    main.c:25: warning: function call has aggregate value
    main.c:26: warning: function call has aggregate value
    main.c:28: warning: function call has aggregate value
    En C, on utilise des pointeurs (explicites) et l'allocation dynamique (explicite aussi).

    Je n'ai pas vu où étaient les 2 dimensions...

  7. #7
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    En fait ce qu'il y a surtout c'est que ça ne "m'acrroche pas".Je ne vais pas aller de moi meme sur l'ordi et partir pour coder en C. J'ai eu la meme réactions en appréendant Java et plus globalement la programmation informatique, a 9 ans. Là j'ai 14 ans 1/2 et je me suis mis à Java serieusement depuis 1 ans et demi, donc ça m'a pris 4 ans pour que j'aille de moi meme programmer. Maintenant j'ai fait le plus dur, et je m'amuse vraiment en codant, en java. Je considere le C comme un language élémentaire pour quiconque veux progresser comme moi. Je suis peut etre parti du mauvais côté (d'un language haut niveau). J'ai essayer de "refaire" des petits projets que j'avais réaliser en java, mon plus gros blocage est la GUI. Penser-vous que même avec un apprentisage tous les jours (étant collégien, j'ai encore pas mal de temps a moi, je vais mettre beaucoup de temps avant de m'amuser en C?
    Merci pour les liens, je vais voir ça de suite !

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par GhostMaster
    Penser-vous que même avec un apprentisage tous les jours (étant collégien, j'ai encore pas mal de temps a moi, je vais mettre beaucoup de temps avant de m'amuser en C?
    Le C, c'est un langage sérieux ;-)

    Je ne sais pas ce que tu appelles s'amuser, mais, moi ce qui m'amuse c'est d'écrire des drivers Linux pour des composants éléctroniques tordus comme il y a plein en télécom...

    Donc, chacun son truc, quoi... Le GUI, personnellement, ça ne m'interesse pas, et si je suis obligé, je le fais vite fait en VB et on en parle plus... Certainement pas en C, ou alors avec GTK+ si j'avais du temps, mais c'est pas aussi simple qu'en VB...

  9. #9
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    En C, on utilise des pointeurs (explicites) et l'allocation dynamique (explicite aussi).
    J'avais pensé le mettre en pur dynamique mais je me suis dit que cela ne ressemblerait pas assez à du Java.

    A cela, on me répondra qu'il faut mieux étudier un langage entièrement au lieu de programmer dans un langage utilisant les techniques d'un autre langage. Je suis entièrement d'accord, mais il faut bien une période de transition.

    Vu qu'il vient du Java, une grande différence est la gestion mémoire et je n'avais pas le temps de rentrer dans cette discussion, gardant les questions malloc/free pour un autre post/un autre jour. Bref, c'est un simple exemple de fonctions utilisant des structures sans malloc/free...

    De plus, j'accepte que passer une structure n'est pas une bonne idée pour les raisons que l'on a déjà cité maintes maintes fois mais ce n'est pas faux et ne pose aucun problème dans l'exemple cité. De plus cela prend beaucoup plus de temps, ce qui est un facteur important pour quelqu'un qui se retrouve dans le milieu de l'embarqué/optimisation de programme...

    Je n'ai pas vu où étaient les 2 dimensions...
    Un vecteur à 2 dimension se défini par un abscisse et une ordonnée... D'où le x et le y...

    Jc

  10. #10
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Emmanuel Delahaye ==> Donc, je vais continuer a m'amuser en Java.
    Tu me conseille donc d'utiliser le C pour faire plutot des programmes transparent a l'utilisateur (drivers, programmes systemes, etc...) plutot que des programmes avec une GUI compliquée?
    En Java, j'ai malheureusement besoin d'une tecnhnologie propriétaire (exe4j en l'occurence) pour produire des executables nécéssitant la Machine Virtuelle Java.En C, plus besoin de solutions propriétaire (qui met bien en evidences ça présence dans l'executable ) et de machine virtuelle.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par GhostMaster
    Emmanuel Delahaye ==> Donc, je vais continuer a m'amuser en Java.
    Tu me conseille donc d'utiliser le C pour faire plutot des programmes transparent a l'utilisateur (drivers, programmes systemes, etc...) plutot que des programmes avec une GUI compliquée?
    En Java, j'ai malheureusement besoin d'une tecnhnologie propriétaire (exe4j en l'occurence) pour produire des executables nécéssitant la Machine Virtuelle Java.En C, plus besoin de solutions propriétaire (qui met bien en evidences ça présence dans l'executable ) et de machine virtuelle.
    tu peut tres bien faire des GUI en C, mais c'est peut etre pas le truc le plus drole a faire

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par fearyourself
    Je n'ai pas vu où étaient les 2 dimensions...
    Un vecteur à 2 dimension se défini par un abscisse et une ordonnée... D'où le x et le y...
    <gros nul en math>
    C'est pas clair. Parfois vecteur, ça veut dire tableau... J'ai pas vu de tableau...
    </gros nul en math>

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par GhostMaster
    Emmanuel Delahaye ==> Donc, je vais continuer a m'amuser en Java.
    Tu me conseille donc d'utiliser le C pour faire plutot des programmes transparent a l'utilisateur (drivers, programmes systemes, etc...) plutot que des programmes avec une GUI compliquée?
    Exactement, ou pour ajouter des fonctions qui font beaucoup de traitements et peu d'I/O à des langages qui ne les ont pas (un codeur MP3, par exemple, et faire 'fun', ça plait aux jeunes).

  14. #14
    Membre Expert

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Je ne sais pas ce que tu appelles s'amuser, mais, moi ce qui m'amuse c'est d'écrire des drivers Linux pour des composants éléctroniques tordus comme il y a plein en télécom...
    Put1 moi j'aimerais bien être payé pour faire ça vois les journées d'enfer ça serait vraiment la vie de rêve, mais bon on fait ce qu'on peut hein? (pas grd chose dans mon cas quoi ).
    Tant qu'a faire du graphique moi j'utiliserais Qt car je trouve ça beau tout simplement

  15. #15
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    C'est surtout du gros passage par copie de structure, pas très recommandé en C, quand même...
    ...
    En C, on utilise des pointeurs (explicites) et l'allocation dynamique (explicite aussi).
    Un compilateur intelligent optimisera et ne fera pas de copie, il écrira directement dans va ou vb.
    Du moins, en C++, on recommande fortement de faire comme ça en se basant sur le fait que ce sera de toutes façons optimisé (le but étant d'éviter la gestion mémoire manuelle, qui impliquerait de faire attention à la libération de mémoire etc.).
    (Je parle bien sûr de la fonction Vecteur_new, dans le cas de Vecteur_add, effectivement, on doit passer par des pointeurs là où en C++ on utiliserait des références)

    en plus, j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Compiling: main.c
    main.c: In function `main_':
    main.c:28: warning: unused variable `vc'
    main.c: In function `Vecteur_new':
    main.c:12: warning: function returns an aggregate
    main.c: In function `Vecteur_add':
    main.c:18: warning: function returns an aggregate
    main.c: In function `main_':
    main.c:25: warning: function call has aggregate value
    main.c:26: warning: function call has aggregate value
    main.c:28: warning: function call has aggregate value
    Moi je n'obtiens que "warning: unused variable `vc', avec gcc 3.4 et gcc 4.0 et tous les warnings activés, que ce soit en mode ansi (j'ai du modifié un peu Vecteur_add du coup) ou c99.

  16. #16
    Membre chevronné Avatar de Jack_serious
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    350
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 350
    Par défaut
    Citation Envoyé par bibi.skuk
    Citation Envoyé par GhostMaster
    Emmanuel Delahaye ==> Donc, je vais continuer a m'amuser en Java.
    Tu me conseille donc d'utiliser le C pour faire plutot des programmes transparent a l'utilisateur (drivers, programmes systemes, etc...) plutot que des programmes avec une GUI compliquée?
    En Java, j'ai malheureusement besoin d'une tecnhnologie propriétaire (exe4j en l'occurence) pour produire des executables nécéssitant la Machine Virtuelle Java.En C, plus besoin de solutions propriétaire (qui met bien en evidences ça présence dans l'executable ) et de machine virtuelle.
    tu peut tres bien faire des GUI en C, mais c'est peut etre pas le truc le plus drole a faire
    Exact...

    Le graphique en C c'est en effet pas tres tres marrant.

    Tu peux t'amuser avec X, auquel cas tu auras l'occasion de toucher de pres a un systeme graphique et de "piger comment ca marche".
    Mais c'est pour les curieux. (Ou les besoins tres specifique).
    Un jeu en X, c'est pas une partie de plaisir. (sauf apres )

    Si tu veux faire des applications graphiques, GTK est ton ami. (ou Qt mais je connais pas).
    GTK ressemble beaucoup a de l'objet. Tu as des pseudo-classes, des similo-constructeurs, du presque-heritage, etc...
    Donc ce n'est pas trop depaysant quand on vient de Java.

    Apres pour le C en general, c'est parfois un peu penible, mais c'est au final tres formateur. Apprendre la gestion de la memoire sans System.gc() c'est tres enrichissant.

    La documentation sur le C et les livres abondent. (Attention y'a du bon et du moins bon).

    En plus tu as plein de contribs sympas pour te filer un coup de main quand tu as une angoisse metaphysique. .

  17. #17
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par loufoque
    Citation Envoyé par Emmanuel Delahaye
    C'est surtout du gros passage par copie de structure, pas très recommandé en C, quand même...
    ...
    En C, on utilise des pointeurs (explicites) et l'allocation dynamique (explicite aussi).
    Un compilateur intelligent optimisera et ne fera pas de copie, il écrira directement dans va ou vb.
    Non. Le compilateur fait ce qu'on lui demande, et il se contente de signaler que c'est bizarre (exemple déjà fourni, BC3.1 dit la même chose).
    Du moins, en C++,
    Euh, c'est quoi C++ ?
    Moi je n'obtiens que "warning: unused variable `vc', avec gcc 3.4 et gcc 4.0 et tous les warnings activés, que ce soit en mode ansi (j'ai du modifié un peu Vecteur_add du coup) ou c99.
    Je compile comme ça (déjà publié 25 fois)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    -O2 -DCODEBLOCKS -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int
    -Werror-implicit-function-declaration -Wmain -Wparentheses -Wsequence-point
    -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized
    -Wunknown-pragmas  -Wfloat-equal -Wundef -Wshadow -Wpointer-arith
    -Wbad-function-cast -Wwrite-strings -Wconversion -Wsign-compare
    -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes
    -Wmissing-declarations -Wmissing-noreturn -Wformat -Wmissing-format-attribute
    -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs
    -Winline -Wlong-long -Wunreachable-code

  18. #18
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    @Emmanuel: Pour tes structures initialisées avec {0}, tu peux rajouter l'option -Wno-missing-field-initializers (ou un truc du genre) sur un GCC assez récent, et il cessera de gueuler.

    Le problème majeur, c'est que certains GCC sont assez récents pour gueuler et trop vieux pour connaitre l'option (gcc 3.4.2 par exemple)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Médinoc
    @Emmanuel: Pour tes structures initialisées avec {0}, tu peux rajouter l'option -Wno-missing-field-initializers (ou un truc du genre) sur un GCC assez récent, et il cessera de gueuler.
    Déjà essayé, marche pas avec mon mingw. (gcc 3.4.2)
    Le problème majeur, c'est que certains GCC sont assez récents pour gueuler et trop vieux pour connaitre l'option (gcc 3.4.2 par exemple)
    Ben voilà...

  20. #20
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Ah ouais, quand même.
    Moi j'ai pas une ligne d'options aussi longue.

Discussions similaires

  1. Difficultés avec TMenuItem.OnDrawItem
    Par ybruant dans le forum Composants VCL
    Réponses: 4
    Dernier message: 12/01/2005, 11h07
  2. Difficulté d'installation de ma carte graphique
    Par sekiryou dans le forum Matériel
    Réponses: 3
    Dernier message: 10/02/2004, 15h24
  3. Difficulté à construire une requête
    Par coolcpu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/10/2003, 00h43
  4. Réponses: 10
    Dernier message: 22/09/2003, 21h58
  5. Difficultés pour afficher un pixel à l'écran
    Par Bubonik software dans le forum C
    Réponses: 9
    Dernier message: 17/08/2003, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo