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 :

Variables automatiques et mot clé auto, variables register.


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Points : 90
    Points
    90
    Par défaut Variables automatiques et mot clé auto, variables register.
    Bonjour,

    En C j'avais l'habitude de déclaré les variables automatiques en préfixant la déclaration du mot clé 'auto'.

    Je voudrais savoir, est-ce toujours permis en C++ ? Il ne me semble pas que ce soit prohibé mais est-ce que c'est admis par le standard ISO 98 ?

    Et les variables de type register alors ? C'est encore utilisé en C++ ou plus du tout ?

    merci

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    register n'est plus à l'ordre du jour depuis très longtemps, c'est juste un conseil au compilateur de mettre la variable dans les registres, mais il s'en fout complètement, que ce soit en C ou en C++.
    Quant à auto, je ne sais pas, je ne l'ai jamais utilisé, jamais vu en cours, donc poubelle ?

  3. #3
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Par défaut une variable locale est auto, cela ne sert donc pas à grand chose de le préciser. C'est un peu comme écrire unsigned int à la place d'unsigned.

    Quand au register il est effectivement de moins en moins utilisé par les compilateurs qui se débrouillent très bien sans pour générer un code efficasse. Ce mot clef avait été introduit en C pour aider les compilateurs car les phases d'optimisation étaient initialement limitées, on n'en est donc plus là

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Points : 90
    Points
    90
    Par défaut
    Citation Envoyé par bruno_pages
    Ce mot clef avait été introduit en C pour aider les compilateurs car les phases d'optimisation étaient initialement limitées, on n'en est donc plus là
    Ah bon, ok alors.

    Citation Envoyé par bruno_pages
    Par défaut une variable locale est auto, cela ne sert donc pas à grand chose de le préciser. C'est un peu comme écrire unsigned int à la place d'unsigned.
    D'accord mais si jamais j'ai envie de le préciser, est ce que cela ne posera pas de problèmes niveau portabilité ?

    merci

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    D'accord mais si jamais j'ai envie de le préciser, est ce que cela ne posera pas de problèmes niveau portabilité ?
    Je ne pense pas non, c'est dans la norme et depuis très longtemps. Mais... c'est réellement inutile, promis.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 752
    Points : 10 683
    Points
    10 683
    Billets dans le blog
    3
    Par défaut
    auto risque bien d'être réutilisé dans un autre but dans la prochaine norme C++, donc...
    Mais surtout, le mettre n'apporte rien d'autre que de la confusion dans l'esprit du relecteur qui se demande ce que c'est.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Points : 90
    Points
    90
    Par défaut
    C'est vrai, je n'avais pas pensé à ça

    Enfin, je suis fixé

    merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/04/2008, 19h07
  2. Réponses: 2
    Dernier message: 26/03/2008, 14h59
  3. Evolution automatique du nom d'une variable
    Par kevinl dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/03/2007, 14h37
  4. [C#]Lier automatiquement un Textbox avec une variable
    Par apoingsfermes dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 11h21
  5. [Tableaux] Numéro auto + variable
    Par vincedjs dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 16h04

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