Signed/unsigned v C (was Re: arduino - povikendovy povzdech)
Jan Waclawek
konfera na efton.sk
Pondělí Březen 23 14:54:15 CET 2015
Mozno niekoho pobavi:
http://pastebin.com/FxX5vVGX
wek
----- Original Message ---------------
>A co takto:
>
>int wirte(char *data, int bytes)
>{
> data = data+bytes;
> for(int I = 0; I < bytes; i++)
> {
> posli(*(data--));
> }
>}
>
>:)
>
>j.
>
>-----Original Message-----
>From: Hw-list [mailto:hw-list-bounces at list.hw.cz] On Behalf Of Petr Weissar
>Sent: Monday, March 23, 2015 1:49 PM
>To: HW-news
>Subject: Re: Signed/unsigned v C (was Re: arduino - povikendovy povzdech)
>
>Napadá mne třeba konstrukce:
>
>int write(char *data, int bytes)
>{
> int i = bytes;
> do
> {
> i--;
> neco(data[i]);
> } while (i);
> return bytes;
>}
>
>Petr
>
>Dne 23. 3. 2015 v 13:33 Ladislav Vaiz napsal(a):
>> 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]);
>> }
Daląí informace o konferenci Hw-list