将变量传递给fmax

时间:2013-09-18 08:20:01

标签: c variables math.h

所以我有以下代码:

#include <math.h>
int main (void) {
float max = fmax (1.0,2.0);
return 0;
}

编译并运行正常,但如果不是将1.0和2.0传递给函数,而是传递a,b并带有这些值:

#include <math.h>
int main (void) {
float a = 1.0; float b = 2.0;
float max = fmax (a,b);
return 0;
}

我收到以下错误:

undefined reference to `fmax'

差异是什么?我做错了什么?

我正在使用此命令编译:

c99 fmax_test.c

2 个答案:

答案 0 :(得分:4)

在第一种情况下,fmax可能会在编译时被优化掉。在第二种情况下它没有,然后你得到一个链接错误。在不知道你使用什么编译器的情况下很难给出具体的补救措施,但如果它是gcc那么你可能需要添加-lm,例如

c99 -Wall fmax_test.c -lm

另请注意fmax适用于double s - 您应fmaxf使用float

答案 1 :(得分:1)

使用-lm编译 我正在使用gcc。也许你的编译器不行。

试试这个:

c99 fmax_test.c -lm