2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 преобразование типов, массивы
Сообщение02.02.2011, 18:04 
помогите разобраться, не компилируется:

#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

 
 
 
 Re: преобразование типов, массивы
Сообщение02.02.2011, 18:50 
В коде особо не разбирался, но похоже, что надо в макросе везде у array_of_longs убрать &.

 
 
 
 Re: преобразование типов, массивы
Сообщение03.02.2011, 10:41 
из книги пример. утверждается, что работает под билдером. студия не компилит. вообще, странно, конечно, что берется адрес у адреса, если я все правильно понял, конечно)

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group