Pomoc s proměnnou struktury

Vytvořil jsem strukturu takto:

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

a a proměnná takto:

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

Ve smyčce () volám test [i] .color, test [i] .position normálně.

Problémy začínají, když chci spustit funkci.

Vytvořil jsem dva pokusy, jeden s řetězcem a druhý s příkazem funkce. S řetězcem nemám žádné problémy s použitím strcmp (), ale není to to, co chci.

Potřebuji vědět, jak mohu do struktury uložit 2 různé funkce a jak mohu provést.

Předem děkujeme!

Komentáře

  • Mohli byste zveřejnit, co jste ' ve vyzkoušel, prosím, a jakým způsobem to ' nefungovalo?
  • Jot odpovědi je to, co jsem potřeboval!
  • Jaká známka říkala je, pokud zveřejníte více kódu, lidé budou pravděpodobně schopni porozumět tomu, co se snažíte říci lépe, a rychleji vám pomoci. Myslel jsem, že chcete uložit dva funkční ukazatele do jedné struktury podle toho, co říká váš text.

Odpověď

Typedef již není potřeba, použití typu „struct“ s názvem deklaruje 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"); } 

Komentáře

  • Není to nutné, protože co? Protože se jedná o C ++?

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *