[elektro] arm c
Kiss Gabor
kissg at ssg.ki.iif.hu
Fri Jul 17 14:13:54 CEST 2015
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
More information about the Elektro
mailing list