C 某些函数不需要链接

C 某些函数不需要链接,c,C,我刚刚遇到一件奇怪的事情。在测试math.h时,我尝试使用pow()并编译它。我不必把数学联系起来。 但是当我尝试使用类似fmod()的东西时,我必须在编译程序时链接math.h。 为什么我必须在第二种情况下链接库,而不是在第一种情况下链接库?您的编译器可能正在用常量替换pow的某些用法。例如,它可以用8.0替换pow(2.0,3.0)。这是一个很好的优化,意味着您不再需要math.h中的pow 但是您的编译器可能无法替换fmod,或者所有数学函数的用法,因此它仍然需要链接到数学库。您的编译器可

我刚刚遇到一件奇怪的事情。在测试math.h时,我尝试使用pow()并编译它。我不必把数学联系起来。 但是当我尝试使用类似fmod()的东西时,我必须在编译程序时链接math.h。
为什么我必须在第二种情况下链接库,而不是在第一种情况下链接库?

您的编译器可能正在用常量替换
pow
的某些用法。例如,它可以用
8.0
替换
pow(2.0,3.0)
。这是一个很好的优化,意味着您不再需要
math.h
中的
pow


但是您的编译器可能无法替换
fmod
,或者所有数学函数的用法,因此它仍然需要链接到数学库。

您的编译器可能正在用常量替换
pow
的某些用法。例如,它可以用
8.0
替换
pow(2.0,3.0)
。这是一个很好的优化,意味着您不再需要
math.h
中的
pow

但是您的编译器可能无法替换
fmod
,或者所有数学函数的用法,因此它仍然需要链接到数学库