1条回答 默认 最新
关注 首先,从编译报错信息看,不是函数没声明问题。应该是你的函数重载定义有问题,从而产生歧义,才导致调用函数时候报错“重载调用不明确”。这样对于不同平台或不同的编译器可能其效果是 不一样的。因为它们在兼容多数规则的同时也会持有自身的一些特性。这样就导致你在手机端APP中可以,而vs中不行。记住函数重载的几个原则: (1).函数名需相同。 (2).参数的个数、参数的顺序和参数的类型不同均可构成重载。 (3).返回值类型不同不能构成重载。 特别是(2)、(3)点很重要,你再检查下你的函数重载定义是否满足上面条件。
其次,floor是c语言的一个库函数,其功能是:其功能是“向下取整”,或者说“向下舍入”。特别重要的一点是,程序中自定义的函数名、变量名等不要与c中的关键字或是函数库名字一样,这是很不好的代码风格,也不满足编程规范。也有可能是这个
产生的报错。若检测了前面的几个原则,都没有问题时候,则重新定义下函数名。即可。
若有帮助,还望楼主采纳!!!谢谢。。。。楼主,我的“帖子回复功能不能使用,只有在这里回答你刚才的问题。”
你需要包含头文件
#include <math.h>
就可以使用了,floor包含在该头文件中。
floor的函数原型是:
double floor(double x);
因此若要转为int类型,有的平台会警告waring,有的则直接报错,需要强制转换,因为会损失精度。
望采纳!!!!
解决 2无用