[ 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.