今天在调试一个程序的时候,发现一个值总是为哦,后面经过单步调试发现unsigned long 类型变量通过1<< n位操作 居然有问题,开发环境是IAR FOR STM81.40.1 ,单片机是 STM8S003F3P6 以下是 单步的一些过程参数
rf_addr1 定义为 unsigned long 型变量, 单步调试发现rf_addr1 前16bit都没法操作, 而且后面的 操作后 1被扩充为高位为1。 好像和高位扩充为1还可以理解,这个和开发环境有关,但是 高16bit无法通过移位操作 不解,求大神解释
|