|
аналог такой операции: r2=(r1&0xFF0000)>>16; которая выполняется значительно быстрее, например для первого байта работает такая операция r2=*&r1; (за одну инструкцию на асме).
А мне нужно "вытащить" третий байт:
unsigned long r1;
unsigned char r2;
r1=(30L<<16)|(123L<<8)|127L;
......
r2=*(&r1-2); // это некорректно работает (она вычитает не 2, а 4*2=8 вероятно из-за типа long для r1)
E-mail: info@telesys.ru