Hilfe mit der Strukturvariablen

Ich habe eine Struktur wie diese erstellt:

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

und a Variable wie folgt:

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

In loop () rufe ich test [i] .color auf, teste [i] .position normal.

Probleme beginnen, wenn ich eine Funktion ausführen möchte.

Ich habe zwei Versuche gemacht, einen mit Zeichenfolge und einen mit einer Funktionsanweisung. Mit dem String habe ich keine Probleme mit einem strcmp (), aber es ist nicht das, was ich will.

Ich muss wissen, wie ich 2 verschiedene Funktionen in der Struktur speichern und ausführen kann.

Vielen Dank im Voraus!

Kommentare

  • Könnten Sie posten, was Sie ' haben versucht, bitte, und auf welche Weise hat es ' nicht funktioniert?
  • Ich brauche keine Antworten!
  • Welche Marke sagte Wenn Sie mehr Code posten, können die Leute möglicherweise besser verstehen, was Sie sagen möchten, und Ihnen schneller helfen. Ich dachte, Sie möchten zwei Funktionszeiger in einer Struktur speichern, indem Sie sagen, was Ihr Text sagt.

Antwort

Das typedef wird nicht mehr benötigt. Die Verwendung der „struct“ mit einem Namen deklariert den Typ.

// 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"); } 

Kommentare

  • Nicht benötigt, weil was? Weil es C ++ ist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.