[elektro] arm c
uprogc .
uprogc at gmail.com
Fri Jul 17 14:47:31 CEST 2015
Az egesznek a lenyege, hogy megadja a lehetoseget, hogy te ird meg az adott
callback fuggveny tartalmat, ugy hogy kozben betartod a fuggveny tipusara
jellemzo tulajdonsagokat (vissz.ter. ertek, argumentumok tipusai)
Vagy akar tobb fuggvenyt is letrehozhatsz, mas nevvel es tartalommal, es az
azonos tipusu fv. mutatoval raallhatsz barmelyikre futasidoben (na ilyenre
meg szuksegem nem volt)
2015-07-17 15:40 GMT+03:00 uprogc . <uprogc at gmail.com>:
> Fuggveny mutato letrehozasa:
>
> *void (*pf)(int foo, int bar);*
>
> Egyenerteku hivasok.
>
>
> *pf(1, 0);(*pf)(1, 0);*
>
> Mivel fuggvenynek argumentumkent nem adhatsz at fuggvenyt ezert letezik a
> fuggvenymutato, ez utobbi atadhato.
>
>
> U,
> Szabi
>
> 2015-07-17 15:20 GMT+03:00 Skandar Graun <sgraun at gmail.com>:
>
>> Húúú, akkor kezdem megint túrni a netet a kifejtésért... de kezdésnek jó,
>> köszönöm. Csak még meg kell emésztenem.
>>
>> Szóval nem volatile, hanem extern... a main-ban megadom simán, majd ahol
>> még használni akarom, ott megint, de extern kiterjesztéssel.
>>
>> 2015. július 17. 14:13 Kiss Gabor írta, <kissg at ssg.ki.iif.hu>:
>>
>> > On 07/17/2015 02:01 PM, Skandar Graun wrote:
>> > > van egy hívás:
>> > >
>> > > udp_recv(upcb, udp_receive_callback, NULL);
>> > >
>> > > Ebben szerepel az " udp_receive_callback" paraméter, ami csak és
>> > kizárólag
>> > > egy másik függvény neve.
>> > >
>> > > void udp_receive_callback(void *arg, struct udp_pcb *upcb, struct pbuf
>> > *p,
>> > > struct ip_addr *addr, u16_t port)
>> > >
>> > > Most vagy én értek valamit félre (a függvényhívás mindig ()-es
>> > kifejezéssel
>> > > végződik)
>> >
>> > Eddig mindkét feltételezésed helytálló. :-)
>> >
>> > > Vagy itt valami más, eddig általam nem ismert szintaktika létezik.
>> >
>> > Bizony. Ez nem függvényHÍVÁS. Hanem egy pointer, ami a függvényre mutat.
>> >
>> > >
>> > > A másik hasonló kérdés: Itt van millióegy file, millióegy deklarációs
>> > > résszel.
>> > > De valahogy nem sikerül egymással kapcsolatot teremteni... ha jól
>> > > emlékszem, akkor a "volatile" kiterjesztés tenné globálissá, mindenhol
>> > > láthatóvá a változót.
>> >
>> > Rosszul.
>> > A volatile tárolási osztályú változókat a compiler nem optimalizálja,
>> > nem cache-eli, hanem minden egyes felhasználáskor újra kiolvassa a
>> > megfelelő memóriacímről, hátha közben valami rejtett mechanizmus
>> > megváltoztatta az értékét. Memory mapped I/O esetén jól látszik az
>> > értelme.
>> >
>> > > Csak nem sikerül.
>> > > Mit kellene csinálni, mit szúrunk el?
>> >
>> > Ami nem static, az globális, látható más fordítási egységből is.
>> > (Ahol viszont externalként kell deklarálni.)
>> >
>> > kissg
>> >
>> > -----------------------------------------
>> > elektro[-flame|-etc]
>> >
>> -----------------------------------------
>> elektro[-flame|-etc]
>>
>
>
More information about the Elektro
mailing list