[elektro] arm c

Skandar Graun sgraun at gmail.com
Fri Jul 17 14:20:56 CEST 2015


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]
>


More information about the Elektro mailing list