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 :

Utilité des pointeurs ?


Sujet :

C

  1. #21
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Une variable de type fenetre ce n'est pas clair ?

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    Ben non ce n'est pas clair, il n'y a pas de type "fenêtre", et on ne peut pas savoir ce que ça représente dans ta tête.

    Si on recopie une variable de type fenêtre, c'est censé faire quoi pour toi?
    Et si on recopie une variable de type HWND?
    Je ne pose pas la question pour une variable de type CWnd, puisqu'elle n'est pas copiable.
    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.

  3. #23
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Salut,

    Il existe aussi les pointeurs de fonctions, utiles pour selectionner une fonction au choix en fonction du traitement demandé, des types de paramètres, etc..

    Je pensais que ça serait utile de le préciser, tant qu'on parle des pointeurs

    A+

  4. #24
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Médinoc
    Ben non ce n'est pas clair, il n'y a pas de type fenêtre, et on ne peut pas savoir ce que ça représente.
    On peut aisément définir un type fenetre en C et quand à ce que cela représente il me semble que le nom est lui même autoinformant non ?

    Struct MaFenetre {hauteur,largeur} ;

    Citation Envoyé par Médinoc
    Si on recopie une variable de type fenêtre, c'est censé faire quoi pour toi?
    Un passage de paramètre par valeur entraîne le clonage de ce paramètre sur la pile.Notamment les champs hauteur et largeur de la structure MaFenetre.

    Citation Envoyé par Médinoc

    Et si on recopie une variable de type HWND?
    Je ne vois pas pourquoi tu parles de HWND ? C'est spécifique à windows non ?

    Je ne vois aucun probléme à recopier un HWND...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    Tiens, tu vois donc que c'est ambigu:
    Pour moi, un type fenêtre, ça représente une fenêtre à l'écran.
    Ton type fenêtre, ce n'est rien d'autre qu'une structure "Dimensions".

    Donc, voilà, à appeler fenêtre n'importe quoi, on s'emmêle les pinceaux.
    Ton type, c'est juste "Une structure".


    PS: Je parlais de HWND, car l'API de fenêtrage de Windows est la seule que je maîtrise.
    Évidemment, quand on copie un HWND, on a deux HWND égaux qui désignent la même fenêtre.
    Mais avec un type "Fenêtre" inconnu, on aurait pu s'attendre à n'importe quoi, y compris une duplication de la fenêtre à l'écran
    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.

  6. #26
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    1-Pour moi, un type fenêtre, ça représente une fenêtre à l'écran.
    2-Ton type fenêtre, ce n'est rien d'autre qu'une structure "Dimensions".

    3-Donc, voilà, à appeler fenêtre n'importe quoi, on s'emmêle les pinceaux.
    4-Ton type, c'est juste "Une structure".
    [Mode=Pourriture du thread]
    1-Oui un type fenetre ca représente une fenetre tant qu'a faire pour qu'elle soit utile autant qu'elle soit à l'ecran non ?
    2-Mon type fenetre représente une fenetre.
    3-Si la notion de fenetre n'est pas claire pour toi j'en suis désolé.
    4-En effet je me vois utiliser un type primitif pour décrire une fenetre
    [Mode=clos]

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    [On continue ?]
    1-Si ta structure est bien une fenêtre à l'écran, tu n'as toujours pas dit ce qui doit arriver quand on la copie

    Enfin sérieusement, tu as amené le type "fenêtre" comme un cheveu sur la soupe sans le définir (structure).
    Et puis, la notion de fenêtre apportait des caractèristiques supplémentaires (i.e., l'écran) qui étaient inutiles pour dire simplement "Si on passe une structure par valeur, elle est entièrement recopiée et ça prend du temps".
    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.

  8. #28
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par Médinoc
    [On continue ?]
    1-Si ta structure est bien une fenêtre à l'écran, tu n'as toujours pas dit ce qui doit arriver quand on la copie
    Le probléme est que tu t'es perdu tout seul en parlant de fenetre windows et de HWND alors que le terme se veut général d'ou le fait que tu sois maintenant dans la confusion.

    Pour éclaircir ce que je voulais dire traduit en code se sera peut être plus parlant bien qu'il s'agit la de notion de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Typedef Struct MaFenetre {int largeur,int hauteur};
     
    <...>
     
    MaFenetre Fen_ParValeur.
    Fen_ParValeur.largeur=200
    Fen_ParValeur.hauteur=500
    Ouvre(Fen_parValeur);
     
    MaFenetre Fen_ParAdresse.
    Fen_ParAdresse.largeur=200
    Fen_ParAdresse.hauteur=500
    Ouvre(&Fen_ParAdresse);
    1 cas : recopie sur la pile des champs de la structure fenetre soit largeur + hauteur = 2 *sizeof(int) = 8 octet pour un int codé sur 4 octet. (merci de ne pas rentrer dans les détails de l'implémentation de la pile sinon on s'en sort pas )

    2 cas : recopie sur la pile de l'adresse de la fenetre soit la taille d'un pointeur = 4 octet en général.

    L'exemple d'une fenetre,avec un peu d'imagination,est plutot flagrant sur le gain apporté.

    Citation Envoyé par Médinoc
    Enfin sérieusement, tu as amené le type "fenêtre" comme un cheveu sur la soupe sans le définir (structure).
    Et puis, la notion de fenêtre apportait des caractèristiques supplémentaires (i.e., l'écran) qui étaient inutiles pour dire simplement "Si on passe une structure par valeur, elle est entièrement recopiée et ça prend du temps".
    Tu devrais prendre en compte le contexte dans lequel le terme a été utilisé.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 401
    Par défaut
    1. J'aurais parlé d'autres types de fenêtre si je les connaissais, et ça n'aurait rien changé.
    2. Ton code parle bien de copie de structure. Tu aurais appelé ta structure Arachide avec deux champs cacahuete1 et cacahuete2, ça aurait été strictement la même chose.
    3. Justement, le contexte ne justifiait pas l'emploi spécifique d'une fenêtre (ou d'une Arachide) au lieu du terme générique de structure.
      La fenêtre a trop de charge sur ses "épaules" par rapport à une simple structure de données.

    Edit: Corrigé pour KiLVaiDeN.
    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.

  10. #30
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Rectification importante, qui peut porter à confusion : Un arachide contient des graines qu'on appelle cacahuète, donc une cacahuète ne contient pas de graine !!

    Prenez-en de la graine ( de champion ? ) et vive les structures passées en pointeurs copié depuis le disque dur clé usb maxtor

  11. #31
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Comment passer de l'utilité des pointeurs à la définition d'une fenetre

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/05/2006, 19h27
  2. à propos des pointeurs
    Par salseropom dans le forum C++
    Réponses: 20
    Dernier message: 24/03/2005, 10h37
  3. Utilité des schemas sous Postgresql?
    Par sessime dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/03/2005, 16h45
  4. Utilité des logos Xiti ?
    Par KibitO dans le forum Evolutions du club
    Réponses: 5
    Dernier message: 20/02/2005, 18h42
  5. utilité des DbControl
    Par portu dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/07/2004, 06h41

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