如图1,这个是要写入库的函数,在保存退出后用终端:
gcc -c rd.c
ar -r libmt.a rd.o
生成一个libmit.a的库然后编写主程序,如图2,保存退出后用终端:
gcc main.c -o rdpro -l mt -L .
编译链接后,能成功运行,但是如果去除图2第六行的函数声明,程序运行结果就会变成一个整数(不是我想要的)。比如我输入3.14159,小数精度为4位,如果加了第六行函数声明,返回的就是3.1416,如果没加,返回的就是31416。
调试的时候,如果在图1加入main函数,最后得出的结果是正确的,rd这个函数应该没有算法错误,把main函数移到图二后,数据传入,运算结果也没有问题,就是结果return回主函数后数据就从小数变成整数了。
可是书上调用自写库函数(void类型)的时候没有事先声明也能用,难道这还和函数类型有关?
图3头文件
head.h里面怎么写的,我怀疑里面有一个不正确的rd的函数的原型。