所以我有以下代码:
#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
最佳答案
在第一种情况下,fmax
可能在编译时被优化掉了。在第二种情况下,它不会,然后您会收到链接错误。在不知道你使用的是什么编译器的情况下,很难给出具体的补救措施,但如果是 gcc,那么你可能需要添加 -lm
,例如
c99 -Wall fmax_test.c -lm
另请注意,fmax
用于double
- 您应该为 float
使用 fmaxf
。
关于c - 将变量传递给 fmax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867172/