Hjälp med strukturvariabel

Jag skapade en struktur så här:

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

och en variabel så här:

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

I loop () kallar jag test [i] .färg, test [i] .position normalt.

Problem börjar när jag vill utföra en funktion.

Jag gjorde två försök, en med sträng och en med ett funktionsuttalande. Med strängen har jag inga problem med att använda en strcmp () men det är inte vad jag vill.

Jag behöver veta hur jag kan lagra 2 olika funktioner i strukturen och hur jag kan utföra.

Tack på förhand!

Kommentarer

  • Kan du lägga upp det du ' har försökte snälla och på vilket sätt fungerade det inte '?
  • Jot svar är vad jag behövde!
  • Vilket märke sa är om du lägger in mer kod kan människor kanske förstå vad du försöker säga bättre och hjälpa dig snabbare. Jag trodde att du ville lagra två funktionspekare i en struktur enligt vad din text säger.

Svar

Typedef behövs inte längre, med hjälp av ”struct” med ett namn förklaras typen.

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

Kommentarer

  • Behövs inte för vad? För det är C ++?

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *