[elektro] C sprintf
SZIGETI Szabolcs
szigiszabolcs at gmail.com
Fri Dec 14 13:57:04 CET 2012
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]
>
More information about the Elektro
mailing list