|
Compact |
|
|
|
помогите разобраться, не компилируется:
#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 |
|
|
|
В коде особо не разбирался, но похоже, что надо в макросе везде у array_of_longs убрать &.
|
|
|
|
 |
|
Compact |
|
|
|
из книги пример. утверждается, что работает под билдером. студия не компилит. вообще, странно, конечно, что берется адрес у адреса, если я все правильно понял, конечно)
|
|
|
|
 |