関数へのポインタを返したいのですが
コンパイルエラーが出てしまいました

#include <stdio.h>
#include <math.h>

double*
get_func(void)
{
double (*fp)(double);
fp = sin;
return (double*)fp;
}

int
main(void)
{
double (*fp)(double);
fp = get_func();
// fp = sin; // これなら問題ない
printf("%g", fp(1));
return 0;
}

~ % gcc -g test.c
test.c: In function `main':
test.c:16: warning: assignment from incompatible pointer type
~ %

型が違っているようには思えないのですが
何かアドバイスいただけますか