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 :

Erreur de compilation bizarre


Sujet :

Arduino

  1. #1
    Membre régulier
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 220
    Points : 74
    Points
    74
    Par défaut Erreur de compilation bizarre
    Bonjour,

    Je procède à la factorisation de mon code et j'ai donc une structure de programme du style:
    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
     
    void F1()
    {
    blabla
    }
     
    void F2()
    {
    blabla
    }
     
    void setup()
    {
    blabla
    }
     
    void loop()
    {blabla
    }
    J'ai de nombreuses fonctions Fx, mais ce qui est bizarre, c'est que j'ai un message d'erreur concernant une fonction particulière qui s'appelait "rewind", et qui est le suivant:

    :1206:12: error: statement cannot resolve address of overloaded function
    rewind;
    exit status 1
    statement cannot resolve address of overloaded function

    Il a suffit que je change "rewind" par "rew", à la fois dans la déclaration de fonction et bien sûr son appel, pour que je n'ai plus du tout d'erreur de compilation !
    Je n'ai rien changé d'autre au code.

    Comment cela est-il possible ??

  2. #2
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour grizzli06
    Citation Envoyé par grizzli06 Voir le message
    Il a suffit que je change "rewind" par "rew", à la fois dans la déclaration de fonction et bien sûr son appel, pour que je n'ai plus du tout d'erreur de compilation !
    Je n'ai rien changé d'autre au code.

    Comment cela est-il possible ??
    Symptôme typique de l'usage d'un mot réservé (rewind) comme nom de variable ou de fonction.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  3. #3
    Membre régulier
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 220
    Points : 74
    Points
    74
    Par défaut
    Symptôme typique de l'usage d'un mot réservé (rewind) comme nom de variable ou de fonction.
    Ah super, c'est bien ce que j'ai fini par penser !! moi qui allait écrire dans mon 1er message "et pourtant rewind n'est pas un mot réservé" !!

    Bon tout s'explique ! même si je ne sais pas ce que fait le mot "réservé" rewind...

    Merci à vous,

  4. #4
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour grizzli06

    C'est ici.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

  5. #5
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Hum pour être plus précis, rewind n'est pas réservé, ce n'est pas un mot clé, c'est juste une fonction standard de la bibliothèque stdio.h que l'IDE inclut pour vous automatiquement et rien ne vous empêche de créer votre fonction rewind().

    ceci compile sans souci par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void rewind(int x) {
      Serial.print("rewind ");
      Serial.println(x);
    }
    void setup() {
      Serial.begin(115200);
      rewind(10);
    }
    void loop() {}

    vous deviez faire autre chose pour avoir l'erreur et le compilateur était confus sur quel rewind vous vouliez appeler?

    Pouvez vous partager le code d'origine?

  6. #6
    Membre régulier
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 220
    Points : 74
    Points
    74
    Par défaut
    Je ne crois pas que j'utilise la fonction rewind donnée dans le lien par jppbricole, mais plus tard on ne sait jamais...

    @JayM:
    Mon code était exactement similaire au tien à la différence près que j'utilisais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void rewind()
    {
    blabla
    }
    c'est-à-dire que la fonction ne reçoit pas d'argument (dans ton exemple il y a int x)

    et le compilateur plantait à chaque fois... Dès le renommage en "rew" plus aucun problème.

    Je ne sais pas si c'est normal, mais ça a résolu mon pb

  7. #7
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    vraiment il doit y avoir autre chose car ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void rewind() {
      Serial.println("rewind ");
    }
    void setup() {
      Serial.begin(115200);
      rewind();
    }
    void loop() {}
    compile et s'exécute sans souci

  8. #8
    Membre régulier
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 220
    Points : 74
    Points
    74
    Par défaut
    Bizarre en effet, mais je n'ai pas trouvé pourquoi: j'ai nommé ma fonction "rew" au lieu de "rewind" et plus aucun problème....

    Je ne vois pas

  9. #9
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par grizzli06 Voir le message
    Bizarre en effet, mais je n'ai pas trouvé pourquoi: j'ai nommé ma fonction "rew" au lieu de "rewind" et plus aucun problème....

    Je ne vois pas
    Faudrait voir votre vrai code…

  10. #10
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Quoi ? Te montrer la ligne 1206 ? Ah ben non, ça ne serait pas drôle ! Non, n'insiste pas !

    Plus sérieusement, le compilateur est clair sur la question. Que ce soit volontaire ou non, à cette ligne, il y a une tentative de récupérer l'adresse d'une function surchargée (le nom de la fonction est utilisé mais sans l'opérateur fonction, genre rewind; mais pas rewind(); ) ce à quoi le compilateur répond: l'adresse, OK, mais laquelle ?

    Bon j'ai pas dit salut au début, ça aurait cassé la spontanéité du premier paragraphe. Alors je le dis maintenant. Salut.

  11. #11
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Oui

    et j'avais raté le manque de parenthèses bien vu !

    (salut)

  12. #12
    Membre régulier
    Homme Profil pro
    Coach
    Inscrit en
    Novembre 2019
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Coach

    Informations forums :
    Inscription : Novembre 2019
    Messages : 220
    Points : 74
    Points
    74
    Par défaut
    Bien d'accord avec vous, il y a forcément une bêtise (et venant de moi évidemment) quelque part !

    Mais je suis super à la bourre sur ce projet, alors ça ne me gêne pas de l'avoir renommée du moment que ça roule, et je verrai plus tard pour le reste...

    Merci à tous !

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

Discussions similaires

  1. "Intellisence" et erreurs de compilation bizarres
    Par mister3957 dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 06/02/2010, 11h54
  2. erreure de compilation bizarre
    Par reptils dans le forum SL & STL
    Réponses: 1
    Dernier message: 03/02/2008, 06h26
  3. [DEV C++] Erreur de compilation bizarre
    Par Muesko dans le forum Dev-C++
    Réponses: 7
    Dernier message: 04/07/2007, 15h37
  4. Erreur de compilation bizarre !
    Par SuperWeight dans le forum MFC
    Réponses: 3
    Dernier message: 31/05/2007, 16h43
  5. Erreur de compilation bizarre
    Par Florian.L dans le forum C
    Réponses: 3
    Dernier message: 11/05/2007, 17h31

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