在';之前应为主表达式';c语言中的token

在';之前应为主表达式';c语言中的token,c,syntax-error,C,Syntax Error,我正在练习选择排序,并从Horowitz的数据结构中复制代码。 我正在处理“预期的主表达式在')'标记之前”的错误 这是我写的代码 #include <stdio.h> #include <math.h> #include <stdlib.h> #define compare(x, y) (((x) < (y)) ? -1 : ((x) == (y)) ? 0 : 1)) int binsearch(int list[], int searchnum,

我正在练习选择排序,并从Horowitz的数据结构中复制代码。 我正在处理“预期的主表达式在')'标记之前”的错误

这是我写的代码

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define compare(x, y) (((x) < (y)) ? -1 : ((x) == (y)) ? 0 : 1))

int binsearch(int list[], int searchnum, int left, int right)
{
int middle; 
while(left <= right){
    middle = (left + right) / 2;
    switch(compare(list[middle], searchnum)){   //  error occured
        case -1: right = middle -1; break;
        case 0: return middle;
        case 1: left = middle + 1;
    }
}   
return -1; 
}
#包括
#包括
#包括
#定义比较(x,y)(((x)<(y))?-1:((x)==(y))?0:1))
int-bin搜索(int-list[],int-searchnum,int-left,int-right)
{
中间;
while(左)

@我按你说的编辑了MohdAlomar谢谢。
#define compare(x, y) (((x) < (y)) ? -1 : ((x) == (y)) ? 0 : 1))
#define compare(x, y) (((x) < (y)) ? -1 : ((x) == (y)) ? 0 : 1)
#define compare(x, y) ((x) < (y) ? -1 : (x) == (y) ? 0 : 1)