[elektro] C sprintf

potyo potyo.ada at gmail.com
Fri Dec 14 14:19:37 CET 2012


sprintf(uart_x, "%2x%2x%2x%2x", ((unsigned char)(&address))[3], ((unsigned
char)(&address))[2], ((unsigned char)(&address))[1], ((unsigned
char)(&address))[0]) is menne szerintem, és kis szerencsével a fordító
rájön, hogy mit is akarsz ezekkel és megfelelően optimalizálja :))


2012. december 14. 14:14 Skandar Graun írta, <sgraun at gmail.com>:

> Ezt tettem, köszi.
> Bár nekem egy DWORD_VAL függvény byte-ra szedte szét.
> Ez a sor:
>
> sprintf(uart_x, "%2x",  (((DWORD_VAL) address).v[1]));
>
> Hogy lehet paraméterezni, hogy int-re szedjen? A .v kitételt nem
> tudtam kihámozni.
>
> SZIGETI Szabolcs <szigiszabolcs at gmail.com> írta (2012. december 14.
> 13:57):
> > Hali!
> >
> > Az x formatum az unsigned int-et kíván (legalább is szabvány C-ben). Ez a
> > DWORD-el nem nagyon fog összejönni, akármekkora mezőszélességet is írsz
> > oda, lévén az az adat típusát nem változtatja meg, csak azt, hogy mekkora
> > helyere írja ki. De legalább a fordító jó fej, mert felismeri, hogy a
> > printf nem mindennapi függvény, és szól érte (régebbi fordítók nem
> > csinálták ezt, ott sokkal nagyobbat lehetett szívni ilyenkor). Az, meg
> hogy
> > nem működik, az elég természetes ilyen esetben, bár szintaktikailag
> helyes
> > (ezért csak warning), de rossz paramétert kap a printf.
> >
> > Például szedd szét két intre és két egymás meletti %x%x-szel írasd ki.
> >
> > Szabolcs
> >
> >
> >
> > 2012. december 14. 13:33 Skandar Graun írta, <sgraun at gmail.com>:
> >
> >> Sziasztok!
> >>
> >> A "     sprintf(uart_x, "%8x - ",       address);"
> >> sorra folyamatosan a:" format '%8x' expects type 'unsigned int', but
> >> argument 3 has type 'DWORD'
> >> hibaüzenetet adja.
> >> Az address egy függvény bemenő adata:
> >>
> >> void            DumpSerialEEP(int volume, DWORD address)
> >>
> >> A formázást egész 16-ig módosítgattam... nem sikerült kivédeni a
> >> hibaüzenetet.
> >> Hiába warning, az utasítást nem hajtja végre...
> >>
> >> Lehet, hogy az sprintf csak int-re műxik? Bár ezt sehol nem láttam
> leírva.
> >>
> >> -----------------------------------------
> >>           elektro[-flame|-etc]
> >>
> > -----------------------------------------
> >           elektro[-flame|-etc]
>
> -----------------------------------------
>           elektro[-flame|-etc]
>


More information about the Elektro mailing list