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 :

commet interpreter ce #define ?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut commet interpreter ce #define ?
    Bonjour,
    Je suis tombe sur le code suivant et je ne comprends pas ce qu'il fait...
    Quelqu'un pourrait-il m'aider? Merci.

    #define STEP i++; if (value1<value2) return(i);
    STEP; STEP; STEP; STEP;
    STEP; STEP; STEP; STEP;
    STEP; STEP; STEP; STEP;

  2. #2
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    #define STEP i++;
    Dans ton code, STEP sera remplacé par i++. Losrqu'on écrit STEP, on incrémente donc i de 1.

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 2
    Par défaut
    Citation Envoyé par homeostasie
    Dans ton code, STEP sera remplacé par i++. Losrqu'on écrit STEP, on incrémente donc i de 1.
    ca veut donc dire que tous les "STEP;" suivants servent juste a incrementer i?
    autre chose, je croyais qu'il n'y avait pas de ; apres un #define?

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par homeostasie
    Dans ton code, STEP sera remplacé par i++. Losrqu'on écrit STEP, on incrémente donc i de 1.
    Et le reste de la ligne, t'en fais quoi ?

  5. #5
    Membre émérite Avatar de homeostasie
    Homme Profil pro
    Inscrit en
    Mai 2005
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 939
    Par défaut
    Et le reste de la ligne, t'en fais quoi ?
    Oui, pardon!

    ca veut donc dire que tous les "STEP;" suivants servent juste a incrementer i?
    autre chose, je croyais qu'il n'y avait pas de ; apres un #define?
    En fait, STEP sera rempacé dans ton code par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    i++;
    if (value1<value2) 
       return(i);
    Par contre, serais ce des variables globales (i, value1, value2)?
    Car j'aurais plutot écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define STEP(i, value1, value2) i++; if (value1<value2) return(i);

  6. #6
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Citation Envoyé par claire78
    #define STEP i++; if (value1<value2) return(i);
    STEP; STEP; STEP; STEP;
    STEP; STEP; STEP; STEP;
    STEP; STEP; STEP; STEP;


    Il essaie de renvoyer 12 fois i incrémenté de 1 si value1 est inférieur à value 2... c'est et logiquement cela ne fonctionne pas, car au premier return les autres ne seront pas atteint...

  7. #7
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Ti-R
    Il renvoie 12 fois i incrémenté de 1 si value1 est inférieur à value 2... c'est
    Euh non : dés que value1 est supérieur à value2 ça retourne i (tu ne peux sortir qu'une seule fois de la fonction). i étant incrémenté à chaque test.

    Pour juger de l'utilité de cette macro, il faudrait avoir un peux plus de code mais à première vue ce n'est pas top

  8. #8
    Membre Expert
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Par défaut
    Oui j'ai vu dès que j'ai posté mon post... et modifié avant que tu ne post ton message, gege2061 tu es trop présent sur le forum

Discussions similaires

  1. [XSL][re] Ecrire des balise qui ne seront pas interpretées
    Par FrRoulio dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/03/2004, 12h32
  2. USER DEFINE FONCTION : PB éxécution requête
    Par juelo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/01/2004, 11h12
  3. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45
  4. define avec GCC.
    Par vagabon dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 12/06/2003, 14h04
  5. Réponses: 3
    Dernier message: 07/04/2003, 20h06

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