[ rapidlord @ 08.04.2005. 16:25 ] @
| Radim u Embedded Visual Studio 3.0 , programiranje za Windows CE je manje vise isto kao za pravi "veliki" Windows, pa mislim da ovaj problem moze da resi i neko ko nikad nije radio na ovoj platformi, imam sledeci kod:
Code:
short racer_gamn[] =
{
0xfb,0xff,0x00,0x00,0xff,0x00,0x00,0xf1...itd
};
pri kompajliranju prijavljujemi sledecu gresku:
warning C4305: 'initializing' : truncation from 'const int' to 'short'
F:\Project\main.cpp(39) : warning C4309: 'initializing' : truncation of constant value
ovo izbaci onoliko puta koliko ima hexadecim. vrednosti u init. nizu
Kolko sam shvatio kompajler kaze da npr: 0xfb ne moze da stane u 'short' koji je provereno velicine 2 bajta, i ako bi trebalo da moze ???
Kada pokrenem kompajliranu aplikaciju, i probam da otstampam npr. prvi element niza koji je ovde '0xfb' , odstampa mi u dec. obliku '-65' , ako pretvorimo ovo u hex. vrednost dobija se 'FF FF FF FF FF FF FF BF' , i uvek ima 8 bajta, od kojih je zadnji bas taj iz niza u ovom slucaju "FB". ???
Dali moze neko da zakjuci o cemu se ovde radi? nadam se da moje izlaganje problema nije previse konfuzno.
TNX |
[ Buffy @ 08.04.2005. 18:05 ] @
Kod mene sve odlicno radi.
Sigurno ti je DREVAN kompajler(naravno da jeste):)
Kada odstampam vrijednost prvog clana niza na ekranu se prikaze 251 sto je jednako 0xfb.
Pozdrav
[ X Files @ 08.04.2005. 21:37 ] @
Ako smem da pitam, zasto koristis 'short' za smestanje
jednog bajta? Zasto ne koristis 'unsigned char'?
Takodje (ako ti nije tesko) odstampaj na ekranu vrednost
sizeof( short )
...bas me zanima.
Licno mislim da je nesto razdeseno u Options.
[ Alef @ 08.04.2005. 23:08 ] @
Koliko ja vidim tu je sve u redu…
0xff je tipa const int, a pošto si ti eksplicitno naveo da ti je niz tipa short onda kompajler mora da izvrši truncation from 'const int' to 'short'.
[ rapidlord @ 09.04.2005. 19:29 ] @
Citat:
Takodje (ako ti nije tesko) odstampaj na ekranu vrednost
sizeof( short )
...bas me zanima.
velicine je 2.
[ toroman @ 09.04.2005. 23:10 ] @
Umjesto 0xFF piši 0x00FF i problem je riješen. Ako je to uopšte i bio problem...
[ rapidlord @ 11.04.2005. 11:30 ] @
Umesto "short" stavio sam "unsigned short" i sad je ok.
[ X Files @ 11.04.2005. 14:40 ] @
Postoji li neki razlog zbog koga si stavio
'unsigned short' a ne 'unsigned char'?
[ rapidlord @ 11.04.2005. 15:18 ] @
Nisam ja stavio, radim neku konverzaciju koda sa Palm OS-a na Pocket PC, mislim da treba 'short' jer kasnije sa nizom rade neke operacije sa 2 bajta, pa verovatno zbog toga.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.