这类警告出现的原因是:xxx函数的x参数作为指针类型参数,指针类型不相容。
解决办法: 在调用函数的参数前加上强制类型转换即可。

示例
源代码:

void * signal_exit(void)
{
printf("Stop sniffer\n");
exit(0);
}
int main(void)
{
signal(SIGINT, signal_exit);
return 0;
}


 

原因分析:

void(* signal(int sig,void(* func)(int)))(int);


signal函数第二个参数对应的类型可以是(void *)类型函数名,警告参数指针类型不相容

解决:加(void *)

signal(SIGINT, (void *)signal_exit);