Signed/unsigned v C (was Re: arduino - povikendovy povzdech)
Ladislav Vaiz
spam na nagano.cz
Pondělí Březen 23 13:33:30 CET 2015
Jan Waclawek napsal(a):
> Mimochodom, v
>
> write(char* data, int bytes)
>
> nevidim dovod pre ten druhy parameter nepouzit typ z <stdint.h>, alebo (ak
> silou-mocou niekto chce byt pre-C99-kompatibilny) tak minimalne unsigned.
>
>
No já na něco podobného ohledně unsigned narazil. Řekněme, že data
potřebuju někam poslat obráceně. Tak začnu psát:
int write(char *data, int bytes){
int i;
for (i = bytes - 1; i >= 0; i--){
neco(data[i]);
}
return bytes;
}
Když budu mít bytes unsigned, tak bude problém s přiřazením do i. Když
dám unsigned i, tak bude vždy >= 0 a po přetečení i se asi budu divit.
Jedině použít hrůzu jako:
unsigned i;
for (i = bytes; i >0; i--){
neco(data[i-1]);
}
Nebo máte někdo lepší tip jak kombinovat signed/unsigned například při
procházení
https://developer.gnome.org/glib/stable/glib-Pointer-Arrays.html#GPtrArray
? Nejde mi o pole delší než 2^31.
L.
Další informace o konferenci Hw-list