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