C语言编程高手帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/07/07 14:41:41
callbacks.c: 在函数 ‘packet_capture_thread’ 中:
callbacks.c:396: 警告:传递参数 3 (属于 ‘pcap_loop’)时在不兼容的指针类型间转换
void *packet_capture_thread(void *button)
{
u_char errbuf[PCAP_ERRBUF_SIZE];
u_char *dev; //network equipment name
pcap_t *packet_desc; //the packet descriptor

dev=(u_char *)calloc(10,sizeof(u_char));
printf("dev address = %#p\n",dev);

dev = pcap_lookupdev(errbuf);

if(dev == NULL)
{
printf("%s\n",errbuf);
pthread_exit(0);
}
printf("dev= %s\n",dev);
packet_desc = pcap_open_live(dev,BUFSIZ,1,-1,errbuf);
printf("button address = %#p\n",button);
pcap_loop(packet_desc,-1,capture_packet,(void *)button);
printf("button address = %#p\n",button);
//pcap_close(packet_descheader) analysis_tcp(cp,len

请楼主将函数pcap_loop()的声明也贴出来,并且贴出capture_packet的类型定义。

根据问题补充,标示符capture_packet被定义为一个函数:
void capture_packet(GtkButton *button,struct pcap_pkthdr *header,u_char *packet),
那么请楼主与函数pcap_loop()声明中的第三个参数的类型进行比较,是否存在类型不匹配的情况?

这样可以吗 你写头文件啊 预处理也没的 也没表达