LOCODUINO

Discussions Générales => Aide => Discussion démarrée par: Babazou38 le août 05, 2023, 03:08:45 pm

Titre: problème avec le type byte
Posté par: Babazou38 le août 05, 2023, 03:08:45 pm
Bonjour à tous,

lorsque je déclare une variable de type 'byte', l'IDE ne le colorise pas mais le compilateur ne dit rien. Par contre si cette déclaration a lieu à l'intérieur d'une définition de classe, le compilateur donne une erreur.

Est-ce que quelqu'un a déjà eu ce problème ?

Jean


Titre: Re : problème avec le type byte
Posté par: Jean-Luc le août 05, 2023, 03:56:33 pm
Bonjour,

Sur mon IDE c'est colorié (v1.8.19)

Citer
Par contre si cette déclaration a lieu à l'intérieur d'une définition de classe, le compilateur donne une erreur.

Et c'est normal si la classe est dans un .h ou un .cpp.

En effet, lorsque l'IDE demande la compilation d'un .ino, ce dernier passe par un pré-processeur spécifique qui inclus en tête le fichier Arduino.h. De plus, ce pré-processeur liste les fonctions présentes dans le .ino et ajoute en tête pour le compilateur la déclaration des prototypes correspondant, ce qui permet d'appeler des fonctions définies après dans le source (ce qui n'est pas possible en C/C++ sinon et produit une erreur de compilation).

En revanche, si l'IDE demande la compilation d'un .cpp, le pré-processeur n'est pas passé et on se retrouve en C/C++ ordinaire.

Pour régler ce problème, il suffit d'ajouter un

#include <Arduino.h>

Dans votre .h avant la déclaration de classe
Titre: Re : problème avec le type byte
Posté par: Babazou38 le août 05, 2023, 04:17:35 pm
Merci Jean-Luc,

effectivement la déclaration de ma classe était dans un .h !

Mon IDE est 2.1.1  ...

Bien cordialement
jean