Compact |
преобразование типов, массивы 02.02.2011, 18:04 |
|
16/04/10 6
|
помогите разобраться, не компилируется:
#define reorder_bytes(array_of_longs, longs_count, tmp_long, tmp_q) \ do { \ for (tmp_q = 0; tmp_q < longs_count; tmp_q++) { \ tmp_long = (((uint32_t *) &array_of_longs)[tmp_q] << 16) | \ (((uint32_t *) &array_of_longs)[tmp_q] >> 16); \ ((uint32_t *) &array_of_longs)[tmp_q] = ((tmp_long & 0xFF00FF00L)>>8)|\ ((tmp_long & 0x00FF00FFL) << 8); \ } \ } while(0) ...
unsigned long value; unsigned short q; ... reorder_bytes(((unsigned long *) buf), 14,value, q); //error '&' requires l-value
|
|
|
|
|
venco |
Re: преобразование типов, массивы 02.02.2011, 18:50 |
|
Заслуженный участник |
|
04/05/09 4587
|
В коде особо не разбирался, но похоже, что надо в макросе везде у array_of_longs убрать &.
|
|
|
|
|
Compact |
Re: преобразование типов, массивы 03.02.2011, 10:41 |
|
16/04/10 6
|
из книги пример. утверждается, что работает под билдером. студия не компилит. вообще, странно, конечно, что берется адрес у адреса, если я все правильно понял, конечно)
|
|
|
|
|
|
Страница 1 из 1
|
[ Сообщений: 3 ] |
|
Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы