首先看看下面这段程序:

uint32_t compare = 10;

for (uint32_t i = compare; i >= 0; --i) {

  

  

    ..........

  

}

这是一段比较危险的程序, 当 i的值变为 -1的时候,其实由于i是一个非负数整形,强制类型转换后,i又变为一个很大的数,

后果就是得不到自己想要的结果,甚至相差很远,以至于程序core掉,正确的做法是,在这种程序中尽量不要用uint32_t,

或者使用之前进行转换(转换成int32_t类型, 但是要注意范围)

通过测试,发现这个循环将成为一个死循环,太可怕了!!!

教训:对于含有unsigned int类型的要特别的注意加小心,防止递减到“小于”零,最好循环比较中不要这样用

相关文章:

  • 2021-10-12
  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2022-01-30
猜你喜欢
  • 2021-10-30
  • 2021-08-28
  • 2022-01-01
  • 2021-08-19
  • 2021-07-24
  • 2021-06-21
  • 2021-06-10
相关资源
相似解决方案