wanneer void () gebruiken en wanneer (void * ptr)

algemene C code
Berichten: 77
Geregistreerd: 17 Mrt 2016, 17:05
Woonplaats: Julianadorp

wanneer void () gebruiken en wanneer (void * ptr)

Berichtdoor Creator » 25 Aug 2019, 19:34

Even iets wat me (nog) niet duidelijk is.

Waarom hebben de Nextion items bijv. de Callback buttons een functie met (void * ptr) en andere sub functie's alleen een lege void ()?

is de pointer functie omdat er een waarde uit de nextion display komt ?
ik heb er best veel over gelezen maar het is me niet duidelijk geworden.

Wie kan licht in de duisternis schenken ;)

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: wanneer void () gebruiken en wanneer (void * ptr)

Berichtdoor Koepel » 25 Aug 2019, 22:28

Wat bedoel je ? Kun je voorbeelden geven ?
Hier staat de library met voorbeelden: https://github.com/itead/ITEADLIB_Arduino_Nextion.

Wanneer je op een knop drukt, dan stuurt het Nextion display gegevens naar de Arduino via de seriële verbinding.
In de nexLoop() wordt dat ingelezen en er wordt gekeken bij welk object het hoort. Dan wordt vervolgens de betreffende callback functie aangeroepen.

In die callback functie is het wel zo handig om het C++ Object bij de hand te hebben van het onderdeel op het scherm. Maar elk onderdeel heeft zijn eigen object. Dus is gekozen om overal een void * ptr mee te geven, en die wordt vervolgens in iedere callback functie omgezet naar een pointer naar het object.

Een void pointer is een pointer naar "iets", naar "zo maar wat", naar "doet er niet toe".
Stel dat op geheugenplaats 0x1E3A het object staat, dan krijgt de callback functie dus 0x1E3A mee. Daar kan de compiler niet veel mee. Vervolgens wordt er een pointer naar het object van gemaakt (nog steeds 0x1E3A) en dan kan de compiler opeens wel bij de functies van het object.

Maak je er maar niet te druk om. De hele ITEAD Nextion Arduino library zit slecht in elkaar. Het idee en de uitwerking werken niet echt soepel.

Berichten: 77
Geregistreerd: 17 Mrt 2016, 17:05
Woonplaats: Julianadorp

Re: wanneer void () gebruiken en wanneer (void * ptr)

Berichtdoor Creator » 26 Aug 2019, 08:47

Koepel,

bedankt voor je reactie.
Ik begrijp het, niet te moeilijk over doen.

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 13 gasten