Apua strukturimuuttujaan

Tein tällaisen rakennemallin:

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

ja a Tällainen muuttuja:

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

Silmukassa () kutsun test [i] .color, test [i] .position normaalisti.

Ongelmat alkavat, kun haluan suorittaa toiminnon.

Tein kaksi attemppiä, yhden merkkijonolla ja toisen funktion lauseella. Merkkijonon kanssa ei ole ongelmia strcmp (): n käytössä, mutta se ei ole mitä haluan.

Minun on tiedettävä, kuinka voin tallentaa 2 erilaista toimintoa strukturiin ja kuinka voin suorittaa.

Kiitos etukäteen!

Kommentit

  • Voisitko lähettää viestejäsi ' ve yritin, kiitos, ja millä tavalla se ei toiminut ' ei?
  • Tarvitsin vastauksia?
  • Mikä merkki sanoi on, jos lähetät enemmän koodia, ihmiset voivat ymmärtää, mitä yrität sanoa paremmin, ja auttaa sinua nopeammin. Luulin, että haluat tallentaa kaksi toimintonäppäintä yhteen rakenteeseen tekstisi sanojen mukaan.

Vastaus

Typedefiä ei enää tarvita, kun käytetään tyyppiä ”struct” nimen kanssa.

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

Kommentit

  • Ei tarvita, koska mitä? Koska se on C ++?

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *