warning: #68-D: integer conversion resulted in a change of sign

这篇具有很好参考价值的文章主要介绍了warning: #68-D: integer conversion resulted in a change of sign。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 在学习STM32的时候遇到一个很奇怪的warning

warning:  #68-D: integer conversion resulted in a change of sign

乍一看这就是一个很常见的定义变量且赋值的语句,感觉没有什么毛病。但是仔细看这是一个u8类型的变量,并且编译显示整数转换导致了符号的改变所以问题应该就是变量的类型混淆所造成的。

咱们深入keil内部去看看u8的本质是什么:

warning:  #68-D: integer conversion resulted in a change of sign
warning:  #68-D: integer conversion resulted in a change of sign

这样就很明显了,u8-->uint8_t-->unsigned char;

所以编译出现整数转换导致了符号的改变的问题也就能理解了,因为这个变量类型按理来说是没有符号的,所以如果想要解决这个问题,只用把本例中result的初值改为正数就好。

  • 那为什么同样的东西,设计者要采用这么多名字呢?

其实一方面就是为了程序员在编写代码的时候能最大程度的简化,这对于编程人员是友好的;另一方面是由于产品的不断更新迭代需要,考虑到兼容性不得不这么做。

  • 咱们对于这些也不用特别恐惧,只用记住基本常用的就好。

u8 --> unsigned char

u16 --> unsigned short

u32 --> unsigned int文章来源地址https://www.toymoban.com/news/detail-471112.html

到了这里,关于warning: #68-D: integer conversion resulted in a change of sign的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包