Aide avec la variable struct

Jai créé une structure comme celle-ci:

typedef struct { int color[3]; int positions[4]; char init[20]; void (*fn)(); } buttons; 

et un variable comme celle-ci:

button test[1] = { {{0,0,0},{0,0,100,100},"getSomething",setSomething} } 

Dans loop (), jappelle test [i] .color, teste [i] .position normalement.

Les problèmes surviennent lorsque je souhaite exécuter une fonction.

Jai fait deux tentatives, une avec une chaîne et une avec une instruction de fonction. Avec la chaîne, je nai aucun problème à utiliser un strcmp () mais ce nest pas ce que je veux.

Jai besoin de savoir comment je peux stocker 2 fonctions différentes dans la structure et comment je peux lexécuter.

Merci davance!

Commentaires

  • Pourriez-vous publier ce que vous ' ve essayé, sil vous plaît, et en quoi ' t-il fonctionné?
  • Javais besoin de Jot réponses!
  • Que disait la marque est que si vous publiez plus de code, les gens pourront mieux comprendre ce que vous essayez de dire et vous aider plus rapidement. Je pensais que vous vouliez stocker deux pointeurs de fonction dans une structure en fonction de ce que dit votre texte.

Réponse

Le typedef nest plus nécessaire, lutilisation de la « struct » avec un nom déclare le type.

// Arduino Uno struct buttons { int color[3]; int positions[4]; char init[20]; void (*fn)(); }; // Declare the functions here, or use prototyping void func1(); void func2(); buttons test[] = { { {0,0,0}, {0,0,100,100}, "getSomething", func1 }, { {40,40,40}, {50,50,10,10}, "somethingElse", func2 }, }; void setup() { Serial.begin(9600); Serial.println("Calling the functions:"); test[0].fn(); test[1].fn(); } void loop() { } void func1() { Serial.println("func1"); } void func2() { Serial.println("func2"); } 

Commentaires

  • Pas nécessaire car quoi? Parce que cest du C ++?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *