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

Arduino Discussion :

Conserver la valeur d'une fonction


Sujet :

Arduino

  1. #1
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 46
    Points
    46
    Par défaut Conserver la valeur d'une fonction
    Bonjour, et merci pour ce forum Arduino!

    J'ai une fonction avec paramètres et je n'arrive pas à conserver le résultat de cette fonction.
    Pour illustrer j'ai fait ce code très simple:

    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
    int total=0;
     
    void setup() {
      Serial.begin(9600);
    }
     
    int somme (int a, int b) {
      int c=a+b;
      return c;
    }
     
    void loop() {
      int a=2;
      if (a==2) {
        int total=somme(2,5);
        Serial.println(total);
      }
      Serial.println(total);
     
    }

    Quand je lance le code il m'affiche:
    0
    7
    0
    7
    0
    7
    ...
    Donc il perd la boucle du if
    Que dois-je faire?
    merci
    (je suis désolé, je n'ai pas trouvé comment mettre les balises pour que ce soit plus lisible)

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 830
    Points
    4 830
    Par défaut
    Bonjour

    C'est une question de portée.
    Tu déclares la variable total deux fois! Au début (variable globale) et dans le bloc du if (variable locale). Dans le bloc c'est la variable locale qui est utilisée, en dehors du bloc c'est la variable globale qui est utilisée. Un bloc est délimité par les accolades {}.

    Remplace int total=somme(2,5); par total=somme(2,5); et cela devrait mieux aller.

    Pour le code, c'est la balise [CODE] qui est dispo avec le bouton qui comporte un #.

    Bonne week-end

    Delias

  3. #3
    Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Décembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 47
    Points : 46
    Points
    46
    Par défaut
    YES!!!
    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 18
    Dernier message: 21/10/2006, 19h10
  2. [Oracle] PB recuperer une valeur d'une fonction Oracle dans PHP
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/07/2006, 10h29
  3. retourné un tableau de valeur d'une fonction
    Par hoaxpunk dans le forum Oracle
    Réponses: 2
    Dernier message: 24/01/2006, 17h36
  4. fonction récupérant des valeurs dans une fonction popup...
    Par petitsims dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2005, 14h51
  5. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37

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