333得票14回答
在C中为什么要链接数学库?

如果在C程序中包含了<stdlib.h>或<stdio.h>,则编译时不需要链接这些库,但是必须使用-lm链接<math.h>,例如使用GCC编译。gcc test.c -o test -lm 这是为什么?为什么我必须明确链接数学库,但不需要链接其他库?

220得票11回答
C++中的atan和atan2有什么区别?

atan和atan2在C++中有什么区别?

104得票4回答
何时使用fabs,何时仅使用std :: abs就足够了?

我假设使用 math.h 时,abs 和 fabs 的行为不同。但是当我只使用 cmath 和 std::abs 时,我是否必须使用 std::fabs 或 fabs?或者这没有被定义?

45得票2回答
log(10.0)可以编译,但log(0.0)无法编译且出现未定义的引用错误?

以下是C语言源代码: #include <math.h> int main(void) { double x; x = log(0.0); return 0; } 当我使用gcc -lm编译时,出现以下错误: /tmp/ccx...

44得票5回答
在C语言中使用pow()函数会抛出未定义的引用错误。

为什么以下这段 C 代码可以正常工作:int res = pow(2, 3); printf("%d\n", res); 而这另一个为什么不行呢?int a = 2; int b = 3; int res = pow(a, b); printf("%d\n", res); 即使我尝试 dou...

44得票4回答
在Doom 3 BFG代码中,将计算Sqrt(x)的方法改为x * InvSqrt(x)是否有任何意义?

我浏览了最近发布的Doom 3 BFG源代码,当我发现一些看起来毫无意义的东西时,它们与数学函数包装在idMath类中。其中一些函数只是转发到math.h中对应的函数,但有些是重新实现的(例如idMath::exp16()),我认为它们比它们的math.h对应函数具有更高的性能(也许以精度为代...

38得票4回答
在字符串常量之前出现了未预期的未标识符。

我目前正在编写一个使用math.h实现振荡器的C++应用程序。我认为我的代码应该可以正常工作(尝试编译对象文件),但是我遇到了一个编译器错误,很可能与语法等有关;我认为这与命名空间有关。错误信息: 终端输出: User-Name-Macbook-Pro:Synth Parts UserNa...

31得票4回答
当n=5时,使用我的编译器和操作系统,为什么pow(n,2)返回24?

#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int n,i,ele; n=5; ele=pow(n,2); printf("%d...

28得票2回答
为什么math.h定义了pi、pi/2和2/pi,但没有定义2*pi?

这是一个非常简单的问题:为什么有预定义常量的pi、pi/2、pi/4、1/pi和2/pi,但没有2*pi的预定义常量?这背后是否有更深层次的原因? 这个问题不涉及pi vs tau辩论的全部内容。我想知道实现某些常量而不是其他常量的技术原因。我能想到两种可能性: 1. 避免舍入误差。 2....

22得票3回答
在Ubuntu上,使用GCC和-lm链接不会定义ceil()函数

我目前正在使用GCC进行编译,并需要使用<math.h>库。 问题在于它无法识别该库。 我还尝试过-lm,但没有成功。 我尝试使用的函数是ceil(),并且我收到以下错误:: undefined reference to `ceil' collect2: ld returned 1...