微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只想知道示例中的演员表是否多余

如何解决只想知道示例中的演员表是否多余

| 只想知道下面示例中的演员表是否多余。 uint16_t basic_units = 4587U; uint8_t int_val =(uint8_t)((((uint16_t)(basic_units * 5U))/ 1000U);     

解决方法

        “ 0”强制转换是多余的。如果
basic_units * 5U
在除以1000之前会溢出正常的ѭ1overflow,则在计算中将
uint16_t
强制转换会产生中间结果的(意外)结果。     ,        我认为(uint16_t)在   (uint8_t)((((uint16_t)(basic_units *   5U))/ 1000U) 是多余的。 仅仅是因为   Uint16_t是以下内容的同义词   \“无符号短裤\” 和   uint8_t只是unsigned的typedef   烧焦     ,        您能否详细说明冗余部分。您尝试做的是一种不安全的做法,并且在进行缩短转换(将16位转换为8位)时非常不建议这样做。 压力 如果您编写uint8_t int_val =(uint8_t)((basic_units * 5U)/ 1000U)就足够了;     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。