这是代码。
unsigned char buf[4];
return (unsigned long)(((unsigned long)buf[0])|((unsigned long)buf[1]<<7)|((unsigned long)buf[2]<<14)|((unsigned long)buf[3]<<21));
以上可以正确的得到结果。
可是
return (unsigned long)(((unsigned long)buf[0])|((unsigned long)buf[1]<<7)|((unsigned long)buf[2]<<14)|((buf[3]<<21));
却不行。
难道要每个数都要强制进行类型转换吗?好麻烦。。。
我一直以为:同一句话,只要强制转换其中一个变量,其他的会自动提升类型。。。。 |