Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino est « extern void ………. »

    10 février 2015 à 11:39:15

    Bonjour,

    Pourquoi on  emploi  dans certain programme Arduino  «  extern void  ………. » dans le programme principal

    Merci

    -
    Edité par erwin 10 février 2015 à 11:40:02

    • Partager sur Facebook
    • Partager sur Twitter
      10 février 2015 à 12:27:03

      Généralement, le extern void n'est pas tout seul.

      Il est plutôt accompagné d'un truc du genre :

      extern void updatedata();

      Il s'agit de dire au compilateur que la fonction updatedata existe et qu'il la trouvera plus tard ou dans un autre fichier.

      Avec un code plus complet, on pourrait trouver ça :

      extern void updatedata();
      
      void setup() {
          ...
      }
      
      void loop() {
          ...
          updatedata();
          ...
      }
      
      void updatedata() {
          ...
      }

      Si tu enlèves le exern void de la première ligne, le compilateur va donc te générer une erreur "call to undefined function updatedata on line 9" car il ne connait la fonction updatedata.

      Serte, tu as bien créé cette fonction à la ligne 13 mais le compilateur procède ligne par ligne.

      Du coup, quand il arrive à la ligne 9, il n'a pas encore vu la ligne 13 donc pour lui, la fonction updatedata  n'existe pas.

      Rajouter ce extern void, c'est un peu comme dire au compilateur : "la fonction updatedata existe alors me fait pas ***** en me disant qu'elle n'existe pas car tu la trouveras plus tard".


      -
      Edité par lorrio 10 février 2015 à 12:30:34

      • Partager sur Facebook
      • Partager sur Twitter
        19 septembre 2017 à 9:05:49

        Merci beaucoup des explications !! Je cherchais une façon de faire ça depuis longtemps et en plus avec les explications pour comprendre cest top merci !
        • Partager sur Facebook
        • Partager sur Twitter

        Arduino est « extern void ………. »

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown