430的shift count is too large的问题

2019-08-04 21:14发布

MSP430中unsigned long是32bit,左移16位及以上时会提示“shift count is too large".据说是跟MSP430是16单片机有关,可是为什么右移16位,甚至24位时没有该类提示呢?是不是因为右移是除法操作,数越来越小,而左移是乘法操作,数越来越大?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
eydj2008
2019-08-04 22:31
我也写了一个 不行
#define UcharToLONG(LONG24,LONG16,LONG8,LONG0)     ((u32)( ((u8)LONG24<< 24) | ((u8)LONG16<< 16)| ((u8)LONG8 << 8) | (u8)LONG0))
UcharToLONG(*Flash_ptr++,*Flash_ptr++,*Flash_ptr++,*Flash_ptr++);
这样警告 还不工作

一周热门 更多>