关于warning: passing argument x of xxx from incompatible pointer type

这类警告出现的原因是: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);

你可能感兴趣的:(指针,linux,c++)