c - 将变量传递给 fmax

标签 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

最佳答案

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

c99 -Wall fmax_test.c -lm

另请注意,fmax 用于double - 您应该为 float 使用 fmaxf

关于c - 将变量传递给 fmax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18867172/

相关文章:

c - 通过 C 中的 printf 函数处理 %s

C程序在友好数算法中返回-1073741819

c - 为什么 if (2 < 9 < 3) 为真?

javascript - 如何将 JavaScript 中的本地存储值转换为服务器存储值?

c - 如何计算程序的内存大小?

cuda - 半 float 的 FLT_MAX

c++ - stub 在可执行文件中

python - 为什么我的变量会在 python 的嵌套 for 循环中被覆盖?

c - 体系结构 x86_64 的 undefined symbol "_min"

C math.h 错误结果