<分区>
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main()
{
float f = .55;
int i;
i = round(f);
}
我遇到的第一个问题是 round() 函数本身。像这样调用它时: 圆形(foo) 没有编译错误。当然,这是无用的,因为返回了所需的 round() 输出。但是当我尝试像这样捕获 round() 的输出时:
i = round(f)
我得到一个编译时错误:
test.c:(.text+0x1b): undefined reference to `round'
就好像只是试图分配 round() 的返回值是强制 round() 不被定义。我在这里读过一些帖子说我应该将 -lm 传递给 GCC,但这没有区别。
尝试从 printf 调用 round() 给我同样的错误,例如:
printf("....", round(f))
这一刻真的让我发疯,因为所有在线引用资料都说:
int i = round(f)
应该可以。
这是 Ubuntu 18.04 上最新的 GCC。