Jedna lepiaca (ako spojit dva bajty do int)

Josef Štengl ok1ced na nagano.cz
Čtvrtek Leden 5 13:25:23 CET 2017


Nejsou tam volatile
a přetypování (int8_t)
v tomto případě zcela zbytečné? Ani v původním provedení v cyklu nejsou nutné.

Upravil bych to na

#include <inttypes.h>
typedef int_least16_t result_t;

uint_least8_t bl;
uint_least8_t bl
result_t result;

int main(void)
{
   result = (result_t)bh * 256 + bh;
}

a neznám architekturu, na které by to nechodilo :-)


Dne 5.1.2017 v 12:16 Jan Waclawek napsal(a):
> Kua chybicka se vloudila,
> result = (result_t)(int8_t)bh * 256 + bl;
> samozrejme.
>
> wek
>
> ----- Original Message ---------------
>
>
>
>> #include <stdint.h>
>>
>> // typedef int16_t result_t;
>> typedef int32_t result_t;
>>
>> volatile uint8_t bl, bh;
>> volatile result_t result;
>>
>> int main(void) {
>>  result = (result_t)(int8_t)bh * 256 + bh;
>> }
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list