2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 преобразование типов, массивы
Сообщение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

 Профиль  
                  
 
 Re: преобразование типов, массивы
Сообщение02.02.2011, 18:50 
Заслуженный участник


04/05/09
4587
В коде особо не разбирался, но похоже, что надо в макросе везде у array_of_longs убрать &.

 Профиль  
                  
 
 Re: преобразование типов, массивы
Сообщение03.02.2011, 10:41 


16/04/10
6
из книги пример. утверждается, что работает под билдером. студия не компилит. вообще, странно, конечно, что берется адрес у адреса, если я все правильно понял, конечно)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group