gpt4 book ai didi

c - 为什么静态库函数的值是错误的?

转载 作者:行者123 更新时间:2023-11-30 18:17:58 24 4
gpt4 key购买 nike

文件a.c:

#include<stdio.h>

int main(int argc, const char *argv[])
{
double r = 0;
r = call(10.0,2.0);
printf("r:%lf\n",r);
return 0;
}

函数 call() 位于静态库中,例如:

文件call.c

#include<stdio.h>

double call(double a,double b){
double c;
c = a + b;
printf("c :%lf\n",c);
return c;
}

我使用的命令是

gcc -c call.c -o call.o

ar rcs libcall.a call.o

gcc -o a a.c -lcall -L.

那么为什么结果不是 12 呢?如果我把double类型改成int类型,结果就是12。

最佳答案

带有警告的编译,编译器会告诉你为什么错误。

您没有函数 call 的原型(prototype),因此当您从 main 调用它时,它会获得隐式 int 返回类型,这不是它实际返回的类型.

关于c - 为什么静态库函数的值是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com