Bonjour

j'ai un fichier toto.h dans lequel j'ai mis quelques #define et 2 variables déclarées extern

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
/*
 * Mon fichier toto.h
 */
 
extern uint32_t variable1;
extern uint8_t variable2;
 
#define macro1 ...
#define macro2 ...
J'inclus ce fichier toto.h dans mon code principal, mais impossible d'utiliser mes variables déclarées extern dans des fonctions de ce code principal.
Lors de la compilation j'ai le message : variable1 was not declared in this scope.

Pourquoi est ce que mes variables ne sont pas vues dans mon code principal (qui incorpore mon fichier où elles sont déclarées) comme une variable globale ? Ai je mal compris l'usage du mot clef extern ?
(Je précise que je travaille sur un Arduino, et qu'il n'y a pas de fonction main() sur ce matériel, mais 2 fonctions : setup() et loop())

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
 
/*
 * Code principal
 */
 
#include <toto.h>
 
void setup()
{
       variable1 = 1;
       variable2 = 10;
}
 
void loop()
{
     ...
}
Merci