指针和整数之间的比较

我想通过check_line和check_triangle使用geo_analyzer函数检查结果。 谢谢你的赞赏。 我不知道为什么我会收到错误。 除了我在ubuntu上编译我在这里得到错误

if(check_line==1) return 1; // line if(check_triangle==1) return 2; //triangle 

函数中的函数代码

 double calculateSlop(double a,double b,double c,double d){ return (dc)/(ba); // like (y2-y1)/(x2-x1) } int geo_analyzer( double p1_x, double p1_y, double p2_x, double p2_y, double p3_x, double p3_y, double p4_x, double p4_y){ double m1,m2,m3; m1=calculateSlop(p1_x,p2_x,p1_y,p2_y); m2=calculateSlop(p2_x,p3_x,p2_y,p3_y); m3=calculateSlop(p3_x,p4_x,p3_y,p4_y); if(check_line==1){ return 1; // line } if(check_triangle==1){ return 2; //triangle } } 

您正在将函数指针与整数进行比较。 如果需要函数的输出,请通过check_line(arg1, arg2, arg3, ...)调用它。

check_line和check_triangle是函数还是变量?
当你写if(check_line==1)if(check_triangle==1)你实际上是说有变量叫做“check_line”和“check_triangle”,你想知道它们是否等于整数1。
如果要检查函数“check_line”和“check_triangle”的OUTPUT是否等于整数1,那么你想要做的是validation你想要传递给这些函数的参数并写if ( check_line(argument1, argument2, ...)==1 )等等。