Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
есть такая функция, в общем на которую ругается:
fixed32 fixdiv32(fixed32 x, fixed32 y)
{ fixed64 temp;
if(x == 0)
return 0;
if(y == 0)
return 0x7fffffff;
temp = x;
temp <<= PRECISION;
return (fixed32)(temp / y);
}
(fixed32 и 64 это соответственно long и long long, PRECISION - макрос(здесь = 20));
причём интересно, если приравнивать некую статическую переменную к результату деления, fixed32 a = (fixed32)(temp / y); - то все хорошо.
если же результату деления приравнивать результат функции, т.е.:
return (fixed32)(temp / y);
или через некий указатель:
*a = (fixed32)(temp / y);
(естественно указатель инициализирован перед этим), то линкер матерится (что не может найти некий __divdi3). Что делать?