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 :

problème avec les flags


Sujet :

C

  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut problème avec les flags
    Bonjour ! Dans le tuto GTK+ par l'exemple (ici), on utilise la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GtkWidget *gtk_dialog_new_with_buttons (const gchar *title, GtkWindow *parent, GtkDialogFlags flags, const gchar *first_button_text, ...);
    avec pour GtkDialogFlags :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef enum
    {
      GTK_DIALOG_MODAL               = 1 << 0, /* appel gtk_window_set_modal (win, TRUE) */
      GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1, /* appel gtk_window_set_destroy_with_parent () */
      GTK_DIALOG_NO_SEPARATOR        = 1 << 2  /* Pas de barre de separation au dessus des boutons */
    } GtkDialogFlags;
    Je ne comprends pas ce que signifient les chevrons... Que veut dire par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GTK_DIALOG_MODAL               = 1 << 0
    Si quelqu'un pouvait me l'expliquer ce serait rudement sympa...
    Merci !

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Par défaut
    Bonjour,
    Une petite recherche sur le décalage de bits : http://melem.developpez.com/langagec...age=bits#LIV-F

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut
    OK, mais qu'elle est l'utilité ici ? Je fait des décalages de bits vers la gauche, et concrètement qu'est-ce que cela m'apporte ? Je suis un peu confus...

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Il s'agit ici d'une enumération dont les éléments sont initialisés.
    La forme utilisée pour les valeurs d'initialisation 1 << 0, 1 << 1, 1 << 2 signifie que 1 est décalé 0, 1, 2 fois vers la gauche. Un décalage 1 fois vers la gauche multiplie la valeur par 2. Ces valeurs sont donc équivalentes à écrire 1, 2, 4.

    Probablement, le programmeur a préféré cette forme avec des décalages pour bien montrer que l'élément placé en position n (= 0,...) dans l'énumération prend la valeur 2^^n

  5. #5
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut
    Bonjour (désolé pour la réponse un peu tardive),
    Probablement, le programmeur a préféré cette forme avec des décalages pour bien montrer que l'élément placé en position n (= 0,...) dans l'énumération prend la valeur 2^^n
    D'accord, donc si dans le code j'utilise la forme 1,2,4 plutôt que celle avec les décalages ça ne pose pas de problème ?
    Mais en fait puisque ce sont des flags les valeurs ne sont importantes que pour le compilateur, moi je m'en fout un peu, je n'utilise que le nom du flag et pas la valeur qui lui est associée... ?

  6. #6
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    D'accord, donc si dans le code j'utilise la forme 1,2,4 plutôt que celle avec les décalages ça ne pose pas de problème ?
    Non
    moi je m'en fout un peu, je n'utilise que le nom du flag et pas la valeur qui lui est associée... ?
    Oui, c'est le but : avoir des noms pour représenter les grandeurs plutôt que des valeurs. Ceci permet une plus grande clarté et accroît l'abstraction du code (ceci étant, le code doit savoir que les différentes options ne sont - probablement, vu le codage utilisé - pas mutuellement exclusives, même si leur code est indifférent)

  7. #7
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Âge : 33

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Par défaut
    ceci étant, le code doit savoir que les différentes options ne sont - probablement, vu le codage utilisé - pas mutuellement exclusives, même si leur code est indifférent
    oui en effet je peux mettre une seule comme plusieurs options en même temps. Mais juste une confirmation : je peux très bien ne passer aucun flag à la fonction ?

Discussions similaires

  1. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  2. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  3. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  4. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  5. []Problème avec les formulaires Outlook
    Par Invité dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59

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