Signed/unsigned v C (was Re: arduino - povikendovy povzdech)

Jan Waclawek konfera na efton.sk
Pondělí Březen 23 14:06:27 CET 2015


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

Okrem uz uvedeneho do-while (ktory sa pre zarputilych skutocnych C
programatorov da zapisat aj ako for (i = data; i-->0; ) :-) ) , napriklad

#include <stdint.h>

uint_least8_t write(char * data, uint_least8_t bytes) {
  uint_least8_t i;
  for (i = 0; i < bytes; i++) {
    neco(data[bytes - 1 - i]); 
  }
  return bytes;
}


(uint_least8_t je IMO rozumna volba pre to AVR z povodneho kontextu, pricom
efektivne portovatelne na vacsie platformy)

wek




Daląí informace o konferenci Hw-list