老师说,在他做STM32编程的时候,对一个unsigned char进行无限++的过程中,当这个unsigned char一直加到0xFF了以后,下一次++不是变成0,而是变成0x100,虽然这个时候查这个unsigned char他确实是0;
但是这个unsigned char依旧是unsigned char,多出来的那个“1”就赋值到下一个内存空间里面了,这就会导致一些莫名其妙的错误,所以,我们写代码的时候也一定要加上&0xFF.
但是我感觉老师讲错了,应该是加上0x7F,这样才能解决这个问题,因为1111 1111加上0xFF没变啊,下次++完了,还是有可能出问题啊,只是原来是把一个未知空间赋值成1,现在是赋值成0了,还是有可能出现莫名其妙的错误…
对了,我没用过STM32,这玩意儿用的啥编译器这么坑爹?