Hjelp med strukturvariabelen

Jeg laget en struktur som denne:

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

og en variabel slik:

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

I loop () kaller jeg test [i] .farge, test [i]. posisjon normalt.

Problemer starter når jeg vil utføre en funksjon.

Jeg laget to forsøk, en med streng og en med en funksjonserklæring. Med strengen har jeg ingen problemer med å bruke strcmp (), men det er ikke det jeg vil.

Jeg trenger å vite hvordan jeg kan lagre 2 forskjellige funksjoner i strukturen og hvordan jeg kan utføre.

Takk på forhånd!

Kommentarer

  • Kan du legge ut det du ' prøvde, vær så snill, og på hvilken måte fungerte det ikke '?
  • Jot svar er det jeg trengte!
  • Hvilket merke sa er hvis du legger ut flere koder, kan folk forstå hva du prøver å si bedre og hjelpe deg raskere. Jeg trodde du ville lagre to funksjonspeker i den ene strukturen etter det teksten din sier.

Svar

Typedef er ikke lenger nødvendig, ved å bruke «struct» med et navn, erklærer 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

  • Ikke nødvendig fordi hva? Fordi det er C ++?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *