[elektro] C aritmetika értetlenség
Skandar Graun
sgraun at gmail.com
Sat Dec 28 07:40:33 CET 2013
Az endiant én állítom a bejövő csomagban, szóval az olyan, amilyen kell.
Valamint köszi.
2013. december 27. 23:13 Móczik Gábor írta, <pm_levlista at progzmaster.hu>:
> 2013.12.26. 18:36 keltezéssel, Skandar Graun írta:
> > huzo_1_pos = ((long*)&sbuffer[3])[0] & 0xFFFFFF
> >
> > Ez lett az első bemásolt és működik.
> > Köszönöm. Valahol én is a castolásra gyanakodtam, csak nem volt konkrét
> > ötletem. A shiftelést próbáltam, ott ki is kergette belőle az adatot, ott
> > is castolni kell.
> > A uC pic18f8722, 40 megán járatva, a feladatra egyébként megfelelne...
> csak
> > a bájtonkénti eléréssel még nem vagyok teljesen rendben. A
> > generictypedefs.h ad rá megoldást, csak utána megint olyan hibaüzenetek
> > vannak, amikkel még nem küzdök.
> > Majd... :)
>
> Cast ne maradjon ki sehonnan, mert tapasztalataim szerint a fordító
> szinte soha nem tudja mit akar az ember. :-)
>
> A fenti kód tökéletes, ha a bejövő adat és a processor endianness
> egyforma. Mivel működik, gondolom jelen esetben igen, csak mondom, hogy
> ezt vedd figyelembe, pláne ha át fogod vinni a kódot máshová.
>
> Érdemes makrókat írni ilyen konverziókra, és akkor csak egy helyen kell
> átírni, ha rendszerváltás van. :-)
>
> Vannak a network stackekben szabványos htons(), ntohs() függvények
> (makrók), ezeket szerintem célszerű ilyen esetekben használni, még ha a
> net stack többi része nem is kell éppen.
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list