сравнение между указателем и integer

Я хочу проверить результат с помощью функции geo_analyzer, используя check_line и check_triangle. Спасибо за благодарные ответы. Я не знаю, почему я получил ошибку. Кроме того, я компилирую на 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.
Если вы хотите проверить, равен ли OUTPUT функций «check_line» и «check_triangle» целое число 1, то то, что вы хотите сделать, это проверить, какие аргументы вы хотите передать этим функциям, и написать if ( check_line(argument1, argument2, ...)==1 ) и так далее.