gcc编译出现 invalid operands to binary -的解决方法

本文详细阐述了一个在使用PCAP库进行抓包操作时遇到的数学运算类型不匹配问题,通过分析代码,发现类型转换导致的错误,并解释了GCC在数学运算中对类型检查的严谨性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做pcap库抓包的程序中,使用了: pcap_head->caplen - (unsigned int)(/*(unsigned char *)*/data - packet); 算式,然后就报“ invalid operands to binary -”。

检查代码,其中packet为char *型,pcap_loop的回调函数的第三个参数,data为根据各层字节计算出的TCP首部位置;但是packet为无符号字符指针,data为有符号的‘去掉代码中的屏蔽的(unsigned char *),错误消失。

看来gcc对数学运算中的类型检查还是比较严谨的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值