【发布时间】:2018-05-15 07:17:06
【问题描述】:
如果我在 C 中调用,数学库中的数学函数“trunc”定义为:
extern double trunc _PARAMS((double));
并在我的主文件中调用它:
int i = (int)trunc(2.5);
它工作正常,没有问题。但是,如果我尝试被动地通过 double,例如:
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。
【问题讨论】:
标签: c microcontroller stm32f4discovery