独闷闷网

 找回密码
 立即注册
搜索
查看: 451|回复: 0
收起左侧

[原创] 为什么说涉及乘法运算的建议使用unsigned long变量?已解答。

[复制链接]
发表于 2015-11-28 12:23:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2015-11-28 12:25 编辑

阿浩-浙江:
阿浩.png
我把类型强制转换了下  还是不行 在我在想想吧,  不用goto的话我的循环有些赋值是浪费的,而这些数据是需要储存在外接rom里面  

★坚鸿-深圳:
(1)此处不要用类型强制转换,既然有乘法,要确保if里的变量都是long,预防数据超翻围,至少也应该是int,但建议是long。
(2)与其研究goto,还不如不用goto,我本人从不用goto。在循环体内,配合if用break或continue,完全可以做你想要的任何逻辑程序,完全可以不用goto,用goto可以看出你还停留在汇编语言的编程思维里。
(3)书写时,建议把==左边的一堆加扩号包起来。这样看起来没那么别扭。

阿浩-浙江:
我一直也是这么使用的 但是这次是需要一次跳出2个循环,实在不行在加个条件在跳一次吧.  能解释下为什么是long?   是否是unsigned char*unsigned char =65536,然后我那边还有个加法 编译器就自动转换冲成long?


★坚鸿-深圳:
是的,不能那样,不要妄想编程器自动读懂你的内心,容易出错。 你自己查查每个数据类形的范围,你这种情况建议用unsigned long类型。


阿浩-浙江:
感谢,以前没怎么在意乘法之后的type.


乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2018-9-19 14:49 , Processed in 0.105411 second(s), 21 queries .

快速回复 返回顶部 返回列表