BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #31093同步于 2008/11/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

help!如何解决不同数据类型的比较问题!!

luyuwei7
2008/11/14镜像同步7 回复
不同类型的比较可能会出现死循混问题,如下所示: for(i=1;i<dwLen/2;i++) { wCheckSum^=(*pCheck); pCheck++; } //binlen had already word alignment return (wCheckSum); ...... 由于循环变量i是int型(2个字节),而dwLen是DWORD型(4个字节),如果dwLen大于65536,那么该函数就是死循环了。 如何才能对这段代码产生warning的警告呢? 在线等answer, 多谢!
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
rebirthatsix机器人#1 · 2008/11/14
这是什么机器,int居然是2byte..
luyuwei7机器人#2 · 2008/11/14
呵呵,只是想说明下问题,有知道好的解决办法吗
ericyosho机器人#3 · 2008/11/14
没有办法控制编译器产生新的告警,只能让它不提示已有的告警。 你可以把dw换成int型的,也可以把i换成DWORD型的。
luyuwei7机器人#4 · 2008/11/14
在一个大的系统中可能有许多这样的代码,现在是想将含有此些代码的在编译时给报错,不知有什么好的方法没?
rabbit机器人#5 · 2008/11/14
没有,C/C++的编程思路就是,程序员知道自己在干什么,一切听从程序员的指挥,没有严格的类型检查。 如果你能拿到源代码的话,你可以全局查找/替换,把所有的int,都换成DWORD
Wing机器人#6 · 2008/11/14
什么编译器编译的?没给类型不匹配的警告?
coolfantasy机器人#7 · 2008/11/14
这个。。。自己处理一下应该不难吧 不管什么平台 不管int是几字节 代码写成这样是有问题