bonjour
Je fais du c++ depuis d�j� un moment je suis tomb� sur un os pour un projet (un drone autonome):
quand je communique avec mon module wifi, je n'ai pas besoin de paralyser tout le programme pour attendre sa r�ponse
donc dans ma fonction de mise_a_jour, j'envoie un message et je repart dans la boucle stabiliser mon drone
mais, quand je re�ois la r�ponse, il faut que je reprenne l� ou je me suis arr�t� dans mise_a_jour.... �a ressemble beaucoup � un GOTO !!!
mais on m'a toujours dit de ne jamais utiliser de goto pour des raisons �videntes, auriez vous une solution pour les remplacer ?
ps1 : mon programme doit �tre tr�s rapide, je suis sur un ARM donc pas de switch avec un case pas ligne...
ps2 : ce code n'est clairement pas fonctionnel, c'est juste pour vous donner une id�e du probl�me, il faut que je revoie le type de emplacement_actuel
Vous pouvez ragez sur le goto mais si vous avez mieux, je prend !
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 void loop() { //plein d'instructions wifi.loop(); } class wifi { public: void loop(); private: void reception(); void mise_a_jours(); String emplacement_actuel; }; void wifi::loop(); { if (attente de réponse ) reception(); else mise_a_jours(); } void wifi::reception() { if( la réponse n'est pas arrivée ) { return(0); } else { goto(emplacement_actuel); } } void wifi::mise_a_jours() { emplacement_actuel = "flag1:" write_serie("hey"); return flag1: emplacement_actuel = "flag2:" write_serie("ho"); return flag2: emplacement_actuel = "flag3:" write_serie("hey"); return flag3: }![]()
Partager