J'essaie d'utiliser une variable globale sur plusieurs fichiers cpp. Pour ce faire, j'ai ajouté la variable dans un fichier d'en-tête appelé system.h
et créé une variable à l'intérieur de celui-ci:Le tableau global n'a pas 'type' lorsqu'il est ajouté au fichier d'en-tête dans le code C
extern int test_variable[];
Maintenant, dans mon file1.cpp
J'inclus l'en-tête system.h
et initialisés la variable avec des valeurs:
int test_variable[10] = {0,2,4};
In file2.cpp
Je souhaite ajouter un nouveau numéro à la matrice, puis imprimer la matrice. system.h
est également inclus dans la partie supérieure du fichier:
test_variable[4] = 7;
void saveToSD(){
for(int i = 0; i < 10; i++)
{
Serial.print(test_variable[i]);
}
Cependant, je reçois une erreur indiquant que le test_variable
dans le file2.cpp
ne nomme pas un type. Qu'est-ce qui me manque puisque j'ai déjà initialisé son type dans le fichier d'en-tête et file1.cpp
indique son type aussi?
Est-ce C ou C++? –
Vous ne pouvez pas avoir de code en dehors d'une fonction dans C. Parce que c'est en dehors d'une fonction, C pense que c'est une déclaration et que "test_variable" doit être un type. –
Puisque vous programmez pour un Arduino, vous programmez C++. Ne marquez pas C et C++ (à moins que la question ne concerne réellement les deux langues) car cela tend à bouleverser les gens (et ce sont vraiment deux langues très différentes). –