Если я вызываю в C, математическая функция `" trunc "в математической библиотеке определяется как:
extern double trunc _PARAMS((double));
и в моем главном файле это называется:
int i = (int)trunc(2.5);
Работает нормально, проблем нет. Но если я попытаюсь пройти пассивно, например:
double d = 2.5;
int i = (int)trunc(d);
Это не сработает?!? В моем микропроцессоре STM32F4 IDE он переходит в режим отладчика в:
Infinite_Loop:
b Infinite_Loop
и он застрял там. Я также меняю double и пробую float, int, unit8_t, ... никто не работает.
Также другие математические функции будут работать нормально, так как я их называю так:
i = sin(1);
i = cos(1);
Но он будет таким же, если будет вызван так:
int a = 1;
i = sin(a);
i = cos(a);
Я выполняю этот код на микропроцессоре STM32F4 Discovery, в IDE используется Eclipse Ac6.