关于C语言中位移的疑问?
我程序里有一段这样的语句for(i=0;i<=3;i++)
{
LimitProtect[i+4]=(*fm++<<8);
(LimitProtect[i+4]|=(*fm++)&0x00ff);
LimitProtect[i+4]<<=16;
LimitProtect[i+4]|=0x0000ffff&(*fm++<<8);
LimitProtect[i+4]|=0x0000ffff&(*fm++)&0x00ff;
}
如果LimitProtect[i+4]<<=16;换成LimitProtect[i+4]<<16; 编译器就警告expression has no effect,而且没有达到移位的效果。
预算结果也不对,请问这两句话有啥不一样呀。