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 :

define et variable


Sujet :

C++

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut define et variable
    Bonjour,

    j'aimerai savoir le type de variable ou constante à la place d'un define?

    Car je veux que la valeur soit toujours la même dans tous le programme, mais on ne la connais pas avant de lancer le programme.

    Comment je peux faire?

    J'espère avoir été clair.

    Alaninho

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par alaninho Voir le message
    J'espère avoir été clair.
    Pas trop.

    Si tu ne connais pas la valeur avant de lancer le programme, je vois mal comment tu peux penser à un .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    243
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 243
    Points : 415
    Points
    415
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TypeName const constName = varName;

  4. #4
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Oulà...
    Pas sûr que ça marche...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 299
    Points : 140
    Points
    140
    Par défaut
    Pour répondre à oodini.

    En faite je modifie un programme de quelqu'un, lui avait mis des #define, mais j'aimerai pouvoir maintenant changer certain de ces paramètres.


    Alaninho

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 115
    Points : 32 967
    Points
    32 967
    Billets dans le blog
    4
    Par défaut
    Pourquoi ne pas modifier les define directement ?
    C'est leur utilité normalement .
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    S'il est possible de les remplacer par des const, ce n'est pas plus mal...

  8. #8
    Membre éprouvé Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Points : 997
    Points
    997
    Par défaut
    Pour trouver le type d'un define, ce n'est pas compliqué il suffit de regarder sa définition.

    S'il s'agit d'une constante littérale, le type est immédiat :
    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
    18
    19
    20
    #define TOTO 456
    int const TOTO = 456;
     
    #define TITI -5.48
    double const TITI = -5.48;
     
    #define TATA ((char) 65)
    char const TATA = 65; // ou 'A' ?
     
    #define TUTU 9685411U
    unsigned int const TUTU = 9685411U;
     
    #define TETE .6843244L
    long double const TETE = .6843244L;
     
    #define FOO "toto"
    char const FOO[] = "toto";
    // std::string const FOO = "toto"; serait certainement plus approprié, mais il faudrait probablement faire des modifications dans le code
     
    // etc.
    S'il s'agit d'une expression, c'est le type de l'expression, à condition quelle soit constante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #define BAR (long) ((27. / 5) * 9)
    long const BAR = (27. / 5) * 9;
     
    #define FOOBAR ('a' + BARFOO) // BARFOO est une constante
    char const FOOBAR = 'a' + BARFOO;
     
    #define BABAR TINTIN // TINTIN est une constante
    ... const BABAR = TINTIN; // arf... tout dépend du type de TINTIN
     
    #define MILOU foo() // foo() est une expression constante
    ... const MILOU = foo(); // Encore une fois, tout dépend du type de retour de foo()
    S'il ne s'agit pas d'une expression constante, là il faut remplacer le define
    par une fonction.
    F.A.Q. C++: Pourquoi utiliser une fonction inline au lieu d'une macro #define ?
    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
    #define HADDOCK bar()
    inline ... HADDOCK() // Type de retour de bar() ?
    {
        return bar();
    }
     
    #define PRINT std::cout << "Hello World!" << std::endl
    inline std::ostream& PRINT()
    {
        return std::cout << "Hello World!" << std::endl;
    }
     
    #define BLOCK do { <instructions> } while (0);
    inline void BLOCK()
    {
        <instructions>
    }
    Bien sûr, si les macros dépendent de paramètres, il faut les transformer en fonctions...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #define BLABLA std::cout << "f(" << i << ") = " << f(i) << std::endl
    inline std::ostream& BLABLA(... i) // Type de i ?
    {
        return std::cout << "f(" << i << ") = " << f(i) << std::endl;
    }

  9. #9
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par Steph_ng8 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char const TATA = 65; // ou 'A' ?
    s'il s'agit d'une valeur numérique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    signed char const TATA = 65;
    s'il s'agit d'un caractère :
    pour le reste

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2008, 08h28
  2. [Système] define ou variables ?
    Par renaudjuif dans le forum Langage
    Réponses: 11
    Dernier message: 08/12/2006, 13h00
  3. Utilisation de DS (define space) || definir une variable ?
    Par TabrisLeFol dans le forum Assembleur
    Réponses: 3
    Dernier message: 02/02/2006, 18h39
  4. defines + variables
    Par Anduriel dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2006, 16h32
  5. Variable interprétée et un define
    Par __fabrice dans le forum Langage
    Réponses: 4
    Dernier message: 05/01/2006, 22h55

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