为什么函数声明和三元运算提示错误?

//5.编写并测试一个函数larger_of(),
//该函数把两个double类型变量的值替换为较大的值。
//例如,larger_of(x, y)会把x和y中较大的值重新赋给两个变量。

//声明
void larger_of(double *a,double *b);


//定义
void larger_of(double *a,double *b){
    *a > *b ? *b = *a : *a = *b;
}

平台vs code 编译器Mingw

错误提示:

In file included from zuoyefun.c:1:
zuoye.h:106:34: note: expected 'double *' but argument is of type 'int *'
 void larger_of(double *a,double *b);
                          ~~~~~~~~^
zuoye.c: In function 'larger_of':
zuoye.c:126:28: error: lvalue required as left operand of assignment
     *a > *b ? *b = *a : *a = *b;

用括号括起来

很多运算符是右结合优先的