Ma fonction doit modifier la valeur d'une variable.
Pour faire simple:
boolean value;
function_1(){
value = 1;
new_value = 0;
function_2(value,new_value); //le passage de value se fait comment sous arduino ??
}
function_2(value, new_value){
value = new_value;
}
J'ai essayé comme ça mais ça ne fonctionne pas... En C j'utilise les pointeurs mais sous arduino comment je peux faire ?
boolean &value;
function_1(){
value = 1;
bollean new_value = 0;
function_2(&value,new_value); //le passage de value se fait comment sous arduino ??
}
function_2(boolean &value, boolean new_value){
*value = new_value;
}
Je pense que si tu as compilé ton code tu as du avoir quelques erreurs.
Pour pouvoir modifier une variable dans function_2, il faut lui passer un pointeur sur la variable. Donc la définition de function_2 est erronée.
La définition de value au début est aussi erronée. value c'est un boolean tout simplement.
salut en regardant ton code value est initialisé a 0 il ne change donc pas !
que cherche tu a faire exactement?
tu peut au choix passer des variable a tes fonction de trois façon diférente:
1-la plus simple par recopie de la variable
int ma_variable=1;
ma_fonction( ma_variable);
void ma_fonction(int une_variable){
serial.println(une_variable);
}
dans ce code on initialise la variable ma_variable a 1 on la passe a la fonction et cette derniere l'affiche
2-un peut plus compliqué par pointeur
un pointeur est une variable qui ne contien pas la variable pointer mais l'adresse memoire de celle si
on utilise alors l'étoile:
int ma_variable=1;
ma_fonction( &ma_variable);
void ma_fonction(int *une_variable){
serial.println(*une_variable);
}
lorsque l'on passe la variable a la fonction on doit la faire précédé de l'esperlouette le "and" sur le clavier cela a pour effet de ne pas copier la variable ma_variable , mais de transmetre l' adresse memoire ou cette derniere est enregistré.
lorsque dans la fonction on va travailler sur la variable on la fera précédé de "*" pour indiqué que l'on travaille sur la variable pointer par cette adresse.
Attention le pointeur et du type de la varible pointé.
3- une autre façon est de passé par référence
int ma_variable=1;
ma_fonction( ma_variable);
void ma_fonction(int &une_variable){
serial.println(une_variable);
}
c'est asser "simailaire" dans sont fonctionement au pointeur avec moins de prise de téte de syntaxe.