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 :

Mot clé "register" : utilité ?


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mot clé "register" : utilité ?
    Bonjour à tous,

    Est-ce que quelqu'un a déjà utilisé la classe de stockage "register" pour ses variables ? Si oui, dans quel cas d'utilisation, comment, pourquoi était-ce nécessaire ? Qu'est-ce que ça a apporté, concrètement, au programme ?

    Je cherche à trouver des utilités pour cette classe de stockage, mais je suis un peu dans le flou.

    Merci pour votre aide.

    Bolde Swoup.

  2. #2
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Hello,

    Ça sert à indiquer que la variable doit être stockée dans un registre (d'ou le nom).

    C'est utilisé dans des cas très particuliers où la performance est primordiale.

    Jamais utilisé perso et jamais vraiment cherché à savoir dans quel cas pratique on peut l'utiliser. Faut avoir une bonne vision du code machine généré pour l'utiliser.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    D'autant plus que le compilo choisit déjà tout seul les stockages en registres, et il est plus fort que beaucoup de gens à ce petit jeu là...

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Je n'ai jamais utilisé, et je n'ai pas entendu quelqu'un dire qu'il avait gagné en l'utilisant au cours des 15 dernières années...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 374
    Points : 41 541
    Points
    41 541
    Par défaut
    Il me semble que de nos jours la plupart des compilos l'ignorent et décident eux-mêmes...

    Quelle est la durée de vie d'une variable register? La même que pour une variable automatique, ou bien c'est complètement orthogonal et on pourrait par exemple déclarer register une variable statique?
    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. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Quelle est la durée de vie d'une variable register? La même que pour une variable automatique, ou bien c'est complètement orthogonal et on pourrait par exemple déclarer register une variable statique?
    J'ai pas vraiment la réponse mais j'imagine mal mobiliser un registre toute la durée d'une appli (bon sauf si c'est une main de 3 lignes ) alors je suppose que c'est effectivmeent orthogonal, à moins qu'on ne puisse marquer que les variables locales (ce qui aurai un sens à mon avis).
    google sera sûrement notre ami...
    EDIT: d'après cette discussion sur stackoverflow register est limité aux variables locales (auto). Par ailleurs il semble assez clair que le compilateur fait ce qu'il veut.

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