[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